feat: Enable overwriting index with -o flag

This commit is contained in:
Felicitas Pojtinger
2021-11-21 13:29:51 +01:00
parent 4ad796bb17
commit 57f524cc21

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()