package configload import ( "strings" "github.com/hashicorp/go-getter" "github.com/hashicorp/terraform/registry/regsrc" ) var localSourcePrefixes = []string{ "./", "../", ".\\", "..\\", } func isLocalSourceAddr(addr string) bool { for _, prefix := range localSourcePrefixes { if strings.HasPrefix(addr, prefix) { return true } } return false } func isRegistrySourceAddr(addr string) bool { _, err := regsrc.ParseModuleSource(addr) return err == nil } // splitAddrSubdir splits the given address (which is assumed to be a // registry address or go-getter-style address) into a package portion // and a sub-directory portion. // // The package portion defines what should be downloaded and then the // sub-directory portion, if present, specifies a sub-directory within // the downloaded object (an archive, VCS repository, etc) that contains // the module's configuration files. // // The subDir portion will be returned as empty if no subdir separator // ("//") is present in the address. func splitAddrSubdir(addr string) (packageAddr, subDir string) { return getter.SourceDirSubdir(addr) }