diff --git a/cmd/quadlet/main.go b/cmd/quadlet/main.go index ae75344ce5..5cc17f7e08 100644 --- a/cmd/quadlet/main.go +++ b/cmd/quadlet/main.go @@ -194,6 +194,8 @@ func isExtSupported(filename string) bool { return ok } +var seen = make(map[string]struct{}) + func loadUnitsFromDir(sourcePath string) ([]*parser.UnitFile, error) { var prevError error files, err := os.ReadDir(sourcePath) @@ -205,7 +207,6 @@ func loadUnitsFromDir(sourcePath string) ([]*parser.UnitFile, error) { } var units []*parser.UnitFile - var seen = make(map[string]struct{}) for _, file := range files { name := file.Name() diff --git a/test/system/252-quadlet.bats b/test/system/252-quadlet.bats index 7b824be00a..f9ea013122 100644 --- a/test/system/252-quadlet.bats +++ b/test/system/252-quadlet.bats @@ -176,6 +176,32 @@ EOF service_cleanup $QUADLET_SERVICE_NAME failed } +@test "quadlet conflict names" { + # If two directories in the search have files with the same name, quadlet should + # only process the first name + dir1=$PODMAN_TMPDIR/$(random_string) + dir2=$PODMAN_TMPDIR/$(random_string) + local quadlet_file=basic_$(random_string).container + mkdir -p $dir1 $dir2 + + cat > $dir1/$quadlet_file < $dir2/$quadlet_file < $quadlet_file <