// ParseDockerURL takes a Docker URL and returns a ParsedDockerURL with its // index URL, image name, and tag. func ParseDockerURL(arg string) (*ParsedDockerURL, error) { r, err := reference.ParseNamed(arg) if err != nil { return nil, err } var tag, digest string switch x := r.(type) { case reference.Canonical: digest = x.Digest().String() case reference.NamedTagged: tag = x.Tag() default: tag = defaultTag } indexURL, remoteName := docker.SplitReposName(r.Name()) return &ParsedDockerURL{ OriginalName: arg, IndexURL: indexURL, ImageName: remoteName, Tag: tag, Digest: digest, }, nil }
// GetIndexName returns the docker index server from a docker URL. func GetIndexName(dockerURL string) string { index, _ := docker.SplitReposName(dockerURL) return index }