diff --git a/registryurl/parse.go b/registryurl/parse.go index 7617132..3fa1e4e 100644 --- a/registryurl/parse.go +++ b/registryurl/parse.go @@ -35,3 +35,13 @@ func Parse(registryURL string) (*url.URL, error) { u.RawQuery = "" return u, nil } + +// GetHostname returns the hostname of the URL +func GetHostname(u *url.URL) string { + return u.Hostname() +} + +// GetPort returns the port number of the URL +func GetPort(u *url.URL) string { + return u.Port() +} diff --git a/registryurl/url_go18.go b/registryurl/url_go18.go deleted file mode 100644 index 2bfc153..0000000 --- a/registryurl/url_go18.go +++ /dev/null @@ -1,17 +0,0 @@ -//+build go1.8 - -package registryurl - -import ( - url "net/url" -) - -// GetHostname returns the hostname of the URL -func GetHostname(u *url.URL) string { - return u.Hostname() -} - -// GetPort returns the port number of the URL -func GetPort(u *url.URL) string { - return u.Port() -} diff --git a/registryurl/url_non_go18.go b/registryurl/url_non_go18.go deleted file mode 100644 index 7c8a88f..0000000 --- a/registryurl/url_non_go18.go +++ /dev/null @@ -1,41 +0,0 @@ -//+build !go1.8 - -package registryurl - -import ( - url "net/url" - "strings" -) - -func GetHostname(u *url.URL) string { - return stripPort(u.Host) -} - -func GetPort(u *url.URL) string { - return portOnly(u.Host) -} - -func stripPort(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return hostport - } - if i := strings.IndexByte(hostport, ']'); i != -1 { - return strings.TrimPrefix(hostport[:i], "[") - } - return hostport[:colon] -} - -func portOnly(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return "" - } - if i := strings.Index(hostport, "]:"); i != -1 { - return hostport[i+len("]:"):] - } - if strings.Contains(hostport, "]") { - return "" - } - return hostport[colon+len(":"):] -}