56 lines
948 B
Go
56 lines
948 B
Go
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
|
|
}
|