strip scheme from name

This commit is contained in:
Michael Yang 2024-05-01 12:25:29 -07:00
parent 8867e744ff
commit 88775e1ff9
2 changed files with 27 additions and 3 deletions

View file

@ -153,12 +153,18 @@ func ParseNameBare(s string) Name {
n.Model = s n.Model = s
return n return n
} }
s, n.Namespace, promised = cutPromised(s, "/") s, n.Namespace, promised = cutPromised(s, "/")
if !promised { if !promised {
n.Namespace = s n.Namespace = s
return n return n
} }
n.Host = s
scheme, host, ok := strings.Cut(s, "://")
if ! ok {
host = scheme
}
n.Host = host
return n return n
} }

View file

@ -17,6 +17,15 @@ func TestParseNameParts(t *testing.T) {
want Name want Name
wantValidDigest bool wantValidDigest bool
}{ }{
{
in: "scheme://host:port/namespace/model:tag",
want: Name{
Host: "host:port",
Namespace: "namespace",
Model: "model",
Tag: "tag",
},
},
{ {
in: "host/namespace/model:tag", in: "host/namespace/model:tag",
want: Name{ want: Name{
@ -26,6 +35,15 @@ func TestParseNameParts(t *testing.T) {
Tag: "tag", Tag: "tag",
}, },
}, },
{
in: "host:port/namespace/model:tag",
want: Name{
Host: "host:port",
Namespace: "namespace",
Model: "model",
Tag: "tag",
},
},
{ {
in: "host/namespace/model", in: "host/namespace/model",
want: Name{ want: Name{
@ -35,9 +53,9 @@ func TestParseNameParts(t *testing.T) {
}, },
}, },
{ {
in: "host:12345/namespace/model", in: "host:port/namespace/model",
want: Name{ want: Name{
Host: "host:12345", Host: "host:port",
Namespace: "namespace", Namespace: "namespace",
Model: "model", Model: "model",
}, },