From 832f2b6171e46939d600c4c34a51ea4e0c6f2eac Mon Sep 17 00:00:00 2001 From: Felix Pojtinger Date: Fri, 26 Nov 2021 18:03:08 +0100 Subject: [PATCH] fix: Pass pointer to dirty flag to prevent not appending the trailer --- cmd/stbak/cmd/archive.go | 8 ++++---- cmd/stbak/cmd/remove.go | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cmd/stbak/cmd/archive.go b/cmd/stbak/cmd/archive.go index 9090f01..544dc8c 100644 --- a/cmd/stbak/cmd/archive.go +++ b/cmd/stbak/cmd/archive.go @@ -75,13 +75,13 @@ func archive( overwrite bool, ) error { dirty := false - tw, isRegular, cleanup, err := openTapeWriter(viper.GetString(tapeFlag)) + tw, isRegular, cleanup, err := openTapeWriter(tape) if err != nil { return err } if overwrite && isRegular { - if err := cleanup(false); err != nil { + if err := cleanup(&dirty); err != nil { // dirty will always be false here return err } @@ -98,13 +98,13 @@ func archive( return err } - tw, isRegular, cleanup, err = openTapeWriter(viper.GetString(tapeFlag)) + tw, isRegular, cleanup, err = openTapeWriter(tape) if err != nil { return err } } - defer cleanup(dirty) + defer cleanup(&dirty) first := true return filepath.Walk(src, func(path string, info fs.FileInfo, err error) error { diff --git a/cmd/stbak/cmd/remove.go b/cmd/stbak/cmd/remove.go index 7974f32..4eb9532 100644 --- a/cmd/stbak/cmd/remove.go +++ b/cmd/stbak/cmd/remove.go @@ -35,7 +35,7 @@ var removeCmd = &cobra.Command{ if err != nil { return err } - defer cleanup(dirty) + defer cleanup(&dirty) metadataPersister := persisters.NewMetadataPersister(viper.GetString(metadataFlag)) if err := metadataPersister.Open(); err != nil { @@ -94,7 +94,7 @@ var removeCmd = &cobra.Command{ }, } -func openTapeWriter(tape string) (tw *tar.Writer, isRegular bool, cleanup func(dirty bool) error, err error) { +func openTapeWriter(tape string) (tw *tar.Writer, isRegular bool, cleanup func(dirty *bool) error, err error) { stat, err := os.Stat(tape) if err == nil { isRegular = stat.Mode().IsRegular() @@ -136,9 +136,9 @@ func openTapeWriter(tape string) (tw *tar.Writer, isRegular bool, cleanup func(d tw = tar.NewWriter(counter) } - return tw, isRegular, func(dirty bool) error { + return tw, isRegular, func(dirty *bool) error { // Only write the trailer if we wrote to the archive - if dirty { + if *dirty { if err := tw.Close(); err != nil { return err }