From 57f524cc2185f24d1b182547c436fd8e68d4491c Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Sun, 21 Nov 2021 13:29:51 +0100 Subject: [PATCH] feat: Enable overwriting index with `-o` flag --- cmd/stcache/cmd/index.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cmd/stcache/cmd/index.go b/cmd/stcache/cmd/index.go index 944345b..06c5f4c 100644 --- a/cmd/stcache/cmd/index.go +++ b/cmd/stcache/cmd/index.go @@ -22,6 +22,7 @@ const ( recordSizeFlag = "record-size" recordFlag = "record" blockFlag = "block" + overwriteFlag = "overwrite" ) var indexCmd = &cobra.Command{ @@ -33,6 +34,21 @@ var indexCmd = &cobra.Command{ return err } + if viper.GetBool(overwriteFlag) { + f, err := os.OpenFile(viper.GetString(dbFlag), os.O_WRONLY|os.O_CREATE, 0600) + if err != nil { + return err + } + + if err := f.Truncate(0); err != nil { + return err + } + + if err := f.Close(); err != nil { + return err + } + } + metadataPersister := persisters.NewMetadataPersister(viper.GetString(dbFlag)) if err := metadataPersister.Open(); err != nil { return err @@ -227,6 +243,7 @@ func init() { indexCmd.PersistentFlags().IntP(recordSizeFlag, "e", 20, "Amount of 512-bit blocks per record") indexCmd.PersistentFlags().IntP(recordFlag, "r", 0, "Record to seek too before counting") indexCmd.PersistentFlags().IntP(blockFlag, "b", 0, "Block in record to seek too before counting") + indexCmd.PersistentFlags().BoolP(overwriteFlag, "o", false, "Start writing from the current position instead of from the end of the tape/file") viper.AutomaticEnv()