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 }