From 8e8c5c9cc35ef9b3de9b8d43919f27a39a1d75d3 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Mon, 20 May 2024 23:31:29 +0200 Subject: refactor: make repository URLs by Repo.Type (currently no change) "currently no change" because only GitHub repos are supported, but more ready to support other types --- internal/importer/utils.go | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'internal/importer/utils.go') 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 } -- cgit 1.4.1