Files
kopia/cli/command_block_repack.go

30 lines
871 B
Go

package cli
import (
"time"
kingpin "gopkg.in/alecthomas/kingpin.v2"
)
var (
blockRepackCommand = blockCommands.Command("repack", "Repackage small blocks into bigger ones")
blockRepackGroup = blockRepackCommand.Flag("group", "Group to repack").Default("DIR").String()
blockRepackSizeThreshold = blockRepackCommand.Flag("max-size", "Max size of block to re-pack").Default("500000").Int64()
blockRepackMinAge = blockRepackCommand.Flag("min-age", "Minimum age to repack").Default("24h").Duration()
)
func runBlockRepackAction(context *kingpin.ParseContext) error {
rep := mustOpenRepository(nil)
defer rep.Close()
if err := rep.Blocks.Repackage(*blockRepackGroup, *blockRepackSizeThreshold, time.Now().Add(-*blockRepackMinAge)); err != nil {
return err
}
return nil
}
func init() {
blockRepackCommand.Action(runBlockRepackAction)
}