Merge remote-tracking branch 'alexkappa/master'

This commit is contained in:
Matt Baer 2018-09-23 16:10:29 -04:00
commit 91da7c59de

27
main.go
View File

@ -21,11 +21,13 @@ import (
)
var (
httpFlag = flag.String("http", ":8080", "Serve HTTP at given address")
httpsFlag = flag.String("https", "", "Serve HTTPS at given address")
certFlag = flag.String("cert", "", "Use the provided TLS certificate")
keyFlag = flag.String("key", "", "Use the provided TLS key")
acmeFlag = flag.String("acme", "", "Auto-request TLS certs and store in given directory")
httpFlag = flag.String("http", ":8080", "Serve HTTP at given address")
httpsFlag = flag.String("https", "", "Serve HTTPS at given address")
certFlag = flag.String("cert", "", "Use the provided TLS certificate")
keyFlag = flag.String("key", "", "Use the provided TLS key")
acmeFlag = flag.String("acme", "", "Auto-request TLS certs and store in given directory")
domainFlag = flag.String("domain", "gopkg.in", "Domain name")
userFlag = flag.String("username", "", "Github username")
)
var httpServer = &http.Server{
@ -185,11 +187,13 @@ var redirect = map[repoBase]repoBase{
// GitHubRoot returns the repository root at GitHub, without a schema.
func (repo *Repo) GitHubRoot() string {
if *userFlag != "" {
return "github.com/" + *userFlag + "/" + repo.Name
}
if repo.User == "" {
return "github.com/go-" + repo.Name + "/" + repo.Name
} else {
return "github.com/" + repo.User + "/" + repo.Name
}
return "github.com/" + repo.User + "/" + repo.Name
}
// GitHubTree returns the repository tree name at GitHub for the selected version.
@ -218,20 +222,19 @@ func (repo *Repo) GopkgVersionRoot(version Version) string {
v := version.String()
if repo.OldFormat {
if repo.User == "" {
return "gopkg.in/" + v + "/" + repo.Name
return *domainFlag + "/" + v + "/" + repo.Name
} else {
return "gopkg.in/" + repo.User + "/" + v + "/" + repo.Name
return *domainFlag + "/" + repo.User + "/" + v + "/" + repo.Name
}
} else {
if repo.User == "" {
return "gopkg.in/" + repo.Name + "." + v
return *domainFlag + "/" + repo.Name + "." + v
} else {
return "gopkg.in/" + repo.User + "/" + repo.Name + "." + v
return *domainFlag + "/" + repo.User + "/" + repo.Name + "." + v
}
}
}
var patternOld = regexp.MustCompile(`^/(?:([a-z0-9][-a-z0-9]+)/)?((?:v0|v[1-9][0-9]*)(?:\.0|\.[1-9][0-9]*){0,2}(?:-unstable)?)/([a-zA-Z][-a-zA-Z0-9]*)(?:\.git)?((?:/[a-zA-Z][-a-zA-Z0-9]*)*)$`)
var patternNew = regexp.MustCompile(`^/(?:([a-zA-Z0-9][-a-zA-Z0-9]+)/)?([a-zA-Z][-.a-zA-Z0-9]*)\.((?:v0|v[1-9][0-9]*)(?:\.0|\.[1-9][0-9]*){0,2}(?:-unstable)?)(?:\.git)?((?:/[a-zA-Z0-9][-.a-zA-Z0-9]*)*)$`)