package main import ( "fmt" "github.com/restic/restic" ) type CmdCache struct { global *GlobalOptions } func init() { _, err := parser.AddCommand("cache", "manage cache", "The cache command creates and manages the local cache", &CmdCache{global: &globalOpts}) if err != nil { panic(err) } } func (cmd CmdCache) Usage() string { return "[update|clear]" } func (cmd CmdCache) Execute(args []string) error { // if len(args) == 0 || len(args) > 2 { // return fmt.Errorf("wrong number of parameters, Usage: %s", cmd.Usage()) // } repo, err := cmd.global.OpenRepository() if err != nil { return err } lock, err := lockRepo(repo) defer unlockRepo(lock) if err != nil { return err } cache, err := restic.NewCache(repo, cmd.global.CacheDir) if err != nil { return err } fmt.Printf("clear cache for old snapshots\n") err = cache.Clear(repo) if err != nil { return err } fmt.Printf("done\n") return nil }