diff options
Diffstat (limited to 'pkg/app/handler/packages/utils.go')
-rw-r--r-- | pkg/app/handler/packages/utils.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pkg/app/handler/packages/utils.go b/pkg/app/handler/packages/utils.go index d4f8752..fc5f904 100644 --- a/pkg/app/handler/packages/utils.go +++ b/pkg/app/handler/packages/utils.go @@ -200,6 +200,7 @@ func GetFuncMap() template.FuncMap { "getReverse": getReverse, "tolower": strings.ToLower, "formatRestricts": FormatRestricts, + "RemoteIdLink": RemoteIdLink, "isMasked": isMasked, "getMask": getMask, "showRemovalNotice": showRemovalNotice, @@ -354,6 +355,42 @@ func FormatRestricts(restricts []string) string { return strings.Join(result, ", ") } +// RemoteIdLink returns a link to the homepage of a given remote id +func RemoteIdLink(remoteId models.RemoteId) string { + switch remoteId.Type { + case "cpan-module": + return "https://metacpan.org/pod/" + remoteId.Id + case "cpan": + return "https://metacpan.org/release/" + remoteId.Id + case "github": + return "https://github.com/" + remoteId.Id + case "sourceforge": + return "https://sourceforge.net/projects/" + remoteId.Id + "/" + case "google-code": + return "https://code.google.com/archive/p/" + remoteId.Id + "/" + case "bitbucket": + return "https://bitbucket.org/" + remoteId.Id + case "pypi": + return "https://pypi.org/project/" + remoteId.Id + "/" + case "launchpad": + return "https://launchpad.net/" + remoteId.Id + case "cpe": + return "https://nvd.nist.gov/products/cpe/search/results?keyword=" + remoteId.Id + case "sourceforge-jp": + return "https://sourceforge.net/projects/" + remoteId.Id + "/" + case "rubygems": + return "https://rubygems.org/gems/" + remoteId.Id + "/" + case "pear": + return "https://pear.php.net/package/" + remoteId.Id + case "freshmeat": + return "http://freshmeat.sourceforge.net/projects/" + remoteId.Id + case "gitlab": + return "https://gitlab.com/" + remoteId.Id + default: + return "" + } +} + // isMasked returns true if any version is masked func isMasked(versions []*models.Version) bool { for _, version := range versions { |