diff options
Diffstat (limited to 'pkg/registries')
-rw-r--r-- | pkg/registries/registries.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pkg/registries/registries.go b/pkg/registries/registries.go index cbb8b730c..9f4c94533 100644 --- a/pkg/registries/registries.go +++ b/pkg/registries/registries.go @@ -3,10 +3,12 @@ package registries import ( "os" "path/filepath" + "strings" "github.com/containers/image/pkg/sysregistries" "github.com/containers/image/types" "github.com/containers/libpod/pkg/rootless" + "github.com/docker/distribution/reference" "github.com/pkg/errors" ) @@ -49,3 +51,17 @@ func GetInsecureRegistries() ([]string, error) { } return registries, nil } + +// GetRegistry returns the registry name from a string if specified +func GetRegistry(image string) (string, error) { + // It is possible to only have the registry name in the format "myregistry/" + // if so, just trim the "/" from the end and return the registry name + if strings.HasSuffix(image, "/") { + return strings.TrimSuffix(image, "/"), nil + } + imgRef, err := reference.Parse(image) + if err != nil { + return "", err + } + return reference.Domain(imgRef.(reference.Named)), nil +} |