in main.go [361:396]
func smartBuildHost(host string) (*url.URL, error) {
u, err := url.Parse(host)
if err != nil {
return nil, fmt.Errorf("failed to parse url: %w", err)
}
if u.Scheme == "" {
u.Scheme = "https"
parts := strings.SplitN(u.Path, "/", 2)
switch len(parts) {
case 0:
u.Host = ""
u.Path = ""
case 1:
u.Host = parts[0]
u.Path = ""
case 2:
u.Host = parts[0]
u.Path = parts[1]
}
}
u.Host = strings.TrimSpace(u.Host)
if u.Host == "" {
return nil, fmt.Errorf("invalid url %q (missing host)", host)
}
u.Path = strings.TrimSpace(u.Path)
if u.Path == "/" {
u.RawPath = ""
u.Path = ""
}
return u, nil
}