From 0deb4e599485412bd719aa1f9a04cd707a3d136b Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sun, 12 Aug 2018 21:59:57 +0200 Subject: [PATCH] ls: Check dirs before opening the repository Users get feedback instantly, and before any expensive network calls have been made. --- cmd/restic/cmd_ls.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/restic/cmd_ls.go b/cmd/restic/cmd_ls.go index 02935b85f..9c7d8c0f4 100644 --- a/cmd/restic/cmd_ls.go +++ b/cmd/restic/cmd_ls.go @@ -65,15 +65,6 @@ func runLs(opts LsOptions, gopts GlobalOptions, args []string) error { return errors.Fatal("Invalid arguments, either give one or more snapshot IDs or set filters.") } - repo, err := OpenRepository(gopts) - if err != nil { - return err - } - - if err = repo.LoadIndex(gopts.ctx); err != nil { - return err - } - // extract any specific directories to walk var dirs []string if len(args) > 1 { @@ -85,6 +76,15 @@ func runLs(opts LsOptions, gopts GlobalOptions, args []string) error { } } + repo, err := OpenRepository(gopts) + if err != nil { + return err + } + + if err = repo.LoadIndex(gopts.ctx); err != nil { + return err + } + ctx, cancel := context.WithCancel(gopts.ctx) defer cancel() for sn := range FindFilteredSnapshots(ctx, repo, opts.Host, opts.Tags, opts.Paths, args[:1]) {