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
return n
}
s, n.Namespace, promised = cutPromised(s, "/")
if !promised {
n.Namespace = s
return n
}
n.Host = s
scheme, host, ok := strings.Cut(s, "://")
if ! ok {
host = scheme
}
n.Host = host
return n
}

View file

@ -17,6 +17,15 @@ func TestParseNameParts(t *testing.T) {
want Name
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",
want: Name{
@ -26,6 +35,15 @@ func TestParseNameParts(t *testing.T) {
Tag: "tag",
},
},
{
in: "host:port/namespace/model:tag",
want: Name{
Host: "host:port",
Namespace: "namespace",
Model: "model",
Tag: "tag",
},
},
{
in: "host/namespace/model",
want: Name{
@ -35,9 +53,9 @@ func TestParseNameParts(t *testing.T) {
},
},
{
in: "host:12345/namespace/model",
in: "host:port/namespace/model",
want: Name{
Host: "host:12345",
Host: "host:port",
Namespace: "namespace",
Model: "model",
},