Commit 81fb06f5 authored by Michael Yang's avatar Michael Yang
Browse files

more resilient Manifests

parent a385382f
...@@ -125,13 +125,24 @@ func Manifests() (map[model.Name]*Manifest, error) { ...@@ -125,13 +125,24 @@ func Manifests() (map[model.Name]*Manifest, error) {
ms := make(map[model.Name]*Manifest) ms := make(map[model.Name]*Manifest)
for _, match := range matches { for _, match := range matches {
rel, err := filepath.Rel(manifests, match) fi, err := os.Stat(match)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if !fi.IsDir() {
rel, err := filepath.Rel(manifests, match)
if err != nil {
slog.Warn("bad filepath", "path", match, "error", err)
continue
}
n := model.ParseNameFromFilepath(rel) n := model.ParseNameFromFilepath(rel)
if n.IsValid() { if !n.IsValid() {
slog.Warn("bad manifest name", "path", rel, "error", err)
continue
}
m, err := ParseNamedManifest(n) m, err := ParseNamedManifest(n)
if err != nil { if err != nil {
slog.Warn("bad manifest", "name", n, "error", err) slog.Warn("bad manifest", "name", n, "error", err)
......
...@@ -56,6 +56,10 @@ func TestManifests(t *testing.T) { ...@@ -56,6 +56,10 @@ func TestManifests(t *testing.T) {
filepath.Join("host", "namespace", "model", "tag"), filepath.Join("host", "namespace", "model", "tag"),
filepath.Join("host", "namespace", "model", ".hidden"), filepath.Join("host", "namespace", "model", ".hidden"),
}, },
"subdir": {
filepath.Join("host", "namespace", "model", "tag", "one"),
filepath.Join("host", "namespace", "model", "tag", "another", "one"),
},
} }
for n, wants := range cases { for n, wants := range cases {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment