delta: trim path when computing src files set

The path contains an ending "/" which wouldn't match when we walk dst as
it's not there.

That had the unpleasant effect of creating empty folders in the
destinations
This commit is contained in:
Ettore Di Giacinto
2021-10-27 10:58:10 +02:00
parent f2f85a2384
commit 37cc186c0b
2 changed files with 9 additions and 2 deletions

View File

@@ -79,7 +79,7 @@ var _ = Describe("Delta", func() {
)
Expect(err).ToNot(HaveOccurred())
defer os.RemoveAll(tmpdir) // clean up
Expect(file.Exists(filepath.Join(tmpdir, "home"))).To(BeFalse())
Expect(file.Exists(filepath.Join(tmpdir, "root", ".cache"))).To(BeTrue())
Expect(file.Exists(filepath.Join(tmpdir, "bin", "sh"))).To(BeFalse())
Expect(file.Exists(filepath.Join(tmpdir, "usr", "local", "go"))).To(BeTrue())

View File

@@ -67,10 +67,17 @@ func ExtractDeltaAdditionsFiles(
if err != nil {
return nil, err
}
filesSrc.Set(hdr.Name, "")
switch hdr.Typeflag {
case tar.TypeDir:
filesSrc.Set(filepath.Dir(hdr.Name), "")
default:
filesSrc.Set(hdr.Name, "")
}
}
return func(h *tar.Header) (bool, error) {
fileName := filepath.Join(string(os.PathSeparator), h.Name)
_, exists := filesSrc.Get(h.Name)
if exists {