From 1e0ef911fac94ae8650560fe11d8872bd30ddf53 Mon Sep 17 00:00:00 2001 From: Jarek Kowalski Date: Sat, 23 Sep 2017 11:49:04 -0700 Subject: [PATCH] added 'object list' subcommand --- cli/command_object_ls.go | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cli/command_object_ls.go diff --git a/cli/command_object_ls.go b/cli/command_object_ls.go new file mode 100644 index 000000000..ea887e21d --- /dev/null +++ b/cli/command_object_ls.go @@ -0,0 +1,41 @@ +package cli + +import ( + "fmt" + "strings" + + "github.com/kopia/kopia/repo" + + kingpin "gopkg.in/alecthomas/kingpin.v2" +) + +var ( + objectListCommand = objectCommands.Command("list", "List objects").Alias("ls") + objectListPrefix = objectListCommand.Flag("prefix", "Prefix").String() +) + +func runListObjectsAction(context *kingpin.ParseContext) error { + rep := mustOpenRepository(nil) + defer rep.Close() + + ch, cancel := rep.Storage.ListBlocks(*objectListPrefix) + defer cancel() + + for b := range ch { + if b.Error != nil { + return b.Error + } + + if strings.HasPrefix(b.BlockID, repo.MetadataBlockPrefix) { + continue + } + + fmt.Printf("D%v\n", b.BlockID) + } + + return nil +} + +func init() { + objectListCommand.Action(runListObjectsAction) +}