refactor: make declaration/definition URLs from Source.Repo
1 file changed, 6 insertions(+), 16 deletions(-)
changed files
M internal/importer/utils.go → internal/importer/utils.go
@@ -36,11 +36,12 @@ return "very strange" } -func makeGitHubFileURL(userRepo string, ref string, subPath string, line string) string { +func makeRepoURL(repo config.Repository, subPath string, line string) string { + ref := repo.Revision if ref == "" { ref = "master" } - url, _ := url.JoinPath("https://github.com/", userRepo, "blob", ref, subPath) + url, _ := url.JoinPath("https://github.com/", repo.Owner, repo.Repo, "blob", ref, subPath) if line != "" { url = url + "#L" + line }@@ -48,21 +49,10 @@ return url } -// make configurable? -var channelRepoMap = map[string]string{ - "nixpkgs": "NixOS/nixpkgs", - "nix-darwin": "LnL7/nix-darwin", - "home-manager": "nix-community/home-manager", -} - -func MakeChannelLink(channel string, ref string, subPath string) (*nix.Link, error) { - if channelRepoMap[channel] == "" { - return nil, fmt.Errorf("don't know what repository relates to channel <%s>", channel) - } - +func MakeChannelLink(repo config.Repository, subPath string) (*nix.Link, error) { return &nix.Link{ - Name: fmt.Sprintf("<%s/%s>", channel, subPath), - URL: makeGitHubFileURL(channelRepoMap[channel], ref, subPath, ""), + Name: fmt.Sprintf("<%s/%s>", repo.Repo, subPath), + URL: makeRepoURL(repo, subPath, ""), }, nil }