package getter import ( "strings" ) // SourceDirSubdir takes a source and returns a tuple of the URL without // the subdir and the URL with the subdir. func SourceDirSubdir(src string) (string, string) { // Calcaulate an offset to avoid accidentally marking the scheme // as the dir. var offset int if idx := strings.Index(src, "://"); idx > -1 { offset = idx + 3 } // First see if we even have an explicit subdir idx := strings.Index(src[offset:], "//") if idx == -1 { return src, "" } idx += offset subdir := src[idx+2:] src = src[:idx] // Next, check if we have query parameters and push them onto the // URL. if idx = strings.Index(subdir, "?"); idx > -1 { query := subdir[idx:] subdir = subdir[:idx] src += query } return src, subdir }