misc/getfiles: fix zst fallback
The previous symlink recursion fix broke the fallback for zst by
returning early.
Fixes 7a07a16ecb
Part-of: https://gitlab.postmarketos.org/postmarketOS/postmarketos-mkinitfs/-/merge_requests/67
[ci:skip-build]: already built successfully in CI
This commit is contained in:
@@ -47,14 +47,14 @@ func getFile(file string, required bool) (files []string, err error) {
|
|||||||
// 2) set file to dereferenced target
|
// 2) set file to dereferenced target
|
||||||
// 4) continue this function to either walk it if the target is a dir or add the
|
// 4) continue this function to either walk it if the target is a dir or add the
|
||||||
// target to the list of files
|
// target to the list of files
|
||||||
if s, err := os.Lstat(file); err != nil {
|
if s, err := os.Lstat(file); err == nil {
|
||||||
return files, err
|
if s.Mode()&fs.ModeSymlink != 0 {
|
||||||
} else if s.Mode()&fs.ModeSymlink != 0 {
|
files = append(files, file)
|
||||||
files = append(files, file)
|
if target, err := filepath.EvalSymlinks(file); err != nil {
|
||||||
if target, err := filepath.EvalSymlinks(file); err != nil {
|
return files, err
|
||||||
return files, err
|
} else {
|
||||||
} else {
|
file = target
|
||||||
file = target
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -107,6 +107,24 @@ func TestGetFile(t *testing.T) {
|
|||||||
},
|
},
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "zst compressed file fallback",
|
||||||
|
setup: func(tmpDir string) (string, []string, error) {
|
||||||
|
// Create a .zst file but NOT the original file
|
||||||
|
zstFile := filepath.Join(tmpDir, "firmware.bin.zst")
|
||||||
|
if err := os.WriteFile(zstFile, []byte("compressed content"), 0644); err != nil {
|
||||||
|
return "", nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Request the original file (without .zst extension)
|
||||||
|
originalFile := filepath.Join(tmpDir, "firmware.bin")
|
||||||
|
|
||||||
|
// Expected: should find and return the .zst version
|
||||||
|
expected := []string{zstFile}
|
||||||
|
return originalFile, expected, nil
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, st := range subtests {
|
for _, st := range subtests {
|
||||||
|
Reference in New Issue
Block a user