feat: Enable overwriting index with -o flag

This commit is contained in:
Felix Pojtinger
2021-11-21 13:29:51 +01:00
parent 318fdaf76f
commit 19609b7deb
+17
View File
@@ -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()