diff --git a/cmd/stbak/cmd/list.go b/cmd/stbak/cmd/list.go index 4e52249..790d382 100644 --- a/cmd/stbak/cmd/list.go +++ b/cmd/stbak/cmd/list.go @@ -4,6 +4,7 @@ import ( "archive/tar" "bufio" "io" + "math" "os" "github.com/pojntfx/stfs/pkg/controllers" @@ -62,9 +63,9 @@ var listCmd = &cobra.Command{ return err } - nextTotalBlocks := curr / controllers.BlockSize - record = nextTotalBlocks / int64(viper.GetInt(recordSizeFlag)) - block = nextTotalBlocks - (record * int64(viper.GetInt(recordSizeFlag))) + nextTotalBlocks := math.Ceil(float64((curr)) / float64(controllers.BlockSize)) + record = int64(nextTotalBlocks) / int64(viper.GetInt(recordSizeFlag)) + block = int64(nextTotalBlocks) - (record * int64(viper.GetInt(recordSizeFlag))) if block > int64(viper.GetInt(recordSizeFlag)) { record++ @@ -101,9 +102,9 @@ var listCmd = &cobra.Command{ return err } - nextTotalBlocks := (curr + hdr.Size) / controllers.BlockSize - record = nextTotalBlocks / int64(viper.GetInt(recordSizeFlag)) - block = nextTotalBlocks - (record * int64(viper.GetInt(recordSizeFlag))) + nextTotalBlocks := math.Ceil(float64((curr + hdr.Size)) / float64(controllers.BlockSize)) + record = int64(nextTotalBlocks) / int64(viper.GetInt(recordSizeFlag)) + block = int64(nextTotalBlocks) - (record * int64(viper.GetInt(recordSizeFlag))) if block > int64(viper.GetInt(recordSizeFlag)) { record++ diff --git a/cmd/stcache/cmd/index.go b/cmd/stcache/cmd/index.go index 8ea9bbc..944345b 100644 --- a/cmd/stcache/cmd/index.go +++ b/cmd/stcache/cmd/index.go @@ -5,6 +5,7 @@ import ( "bufio" "context" "io" + "math" "os" "path/filepath" @@ -77,9 +78,9 @@ var indexCmd = &cobra.Command{ return err } - nextTotalBlocks := curr / controllers.BlockSize - record = nextTotalBlocks / int64(viper.GetInt(recordSizeFlag)) - block = nextTotalBlocks - (record * int64(viper.GetInt(recordSizeFlag))) + nextTotalBlocks := math.Ceil(float64((curr)) / float64(controllers.BlockSize)) + record = int64(nextTotalBlocks) / int64(viper.GetInt(recordSizeFlag)) + block = int64(nextTotalBlocks) - (record * int64(viper.GetInt(recordSizeFlag))) if block > int64(viper.GetInt(recordSizeFlag)) { record++ @@ -120,9 +121,9 @@ var indexCmd = &cobra.Command{ return err } - nextTotalBlocks := (curr + hdr.Size) / controllers.BlockSize - record = nextTotalBlocks / int64(viper.GetInt(recordSizeFlag)) - block = nextTotalBlocks - (record * int64(viper.GetInt(recordSizeFlag))) + nextTotalBlocks := math.Ceil(float64((curr + hdr.Size)) / float64(controllers.BlockSize)) + record = int64(nextTotalBlocks) / int64(viper.GetInt(recordSizeFlag)) + block = int64(nextTotalBlocks) - (record * int64(viper.GetInt(recordSizeFlag))) if block > int64(viper.GetInt(recordSizeFlag)) { record++