diff options
Diffstat (limited to 'internal/importer/utils.go')
-rw-r--r-- | internal/importer/utils.go | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/internal/importer/utils.go b/internal/importer/utils.go index 3977c2e..425b7bd 100644 --- a/internal/importer/utils.go +++ b/internal/importer/utils.go @@ -36,23 +36,36 @@ func ValueTypeToString(valueType jstream.ValueType) string { return "very strange" } -func makeRepoURL(repo config.Repository, subPath string, line string) string { - ref := repo.Revision - if ref == "" { - ref = "master" - } - url, _ := url.JoinPath("https://github.com/", repo.Owner, repo.Repo, "blob", ref, subPath) - if line != "" { - url = url + "#L" + line - } +func makeRepoURL(repo config.Repository, subPath string, line string) (string, error) { + switch repo.Type { + case config.GitHub: + ref := repo.Revision + if ref == "" { + ref = "master" + } + url, _ := url.JoinPath("https://github.com/", repo.Owner, repo.Repo, "blob", ref, subPath) + if line != "" { + url = url + "#L" + line + } - return url + return url, nil + default: + return "", errors.Errorf( + "don't know how to generate a repository URL for %s", + repo.Type.String(), + ) + } } func MakeChannelLink(repo config.Repository, subPath string) (*nix.Link, error) { + url, err := makeRepoURL(repo, subPath, "") + if err != nil { + return nil, err + } + return &nix.Link{ Name: fmt.Sprintf("<%s/%s>", repo.Repo, subPath), - URL: makeRepoURL(repo, subPath, ""), + URL: url, }, nil } |