From b0da0f152f3c217c48684932915cea617c973f6b Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sun, 1 Oct 2023 19:38:09 +0200 Subject: [PATCH] deduplicate index progress bar setup --- cmd/restic/cmd_backup.go | 2 +- cmd/restic/cmd_cat.go | 4 ++-- cmd/restic/cmd_copy.go | 4 ++-- cmd/restic/cmd_debug.go | 2 +- cmd/restic/cmd_diff.go | 2 +- cmd/restic/cmd_dump.go | 2 +- cmd/restic/cmd_find.go | 2 +- cmd/restic/cmd_ls.go | 2 +- cmd/restic/cmd_mount.go | 2 +- cmd/restic/cmd_prune.go | 2 +- cmd/restic/cmd_recover.go | 2 +- cmd/restic/cmd_repair_snapshots.go | 2 +- cmd/restic/cmd_restore.go | 2 +- cmd/restic/cmd_rewrite.go | 2 +- cmd/restic/cmd_stats.go | 2 +- cmd/restic/progress.go | 8 ++++++++ 16 files changed, 25 insertions(+), 17 deletions(-) diff --git a/cmd/restic/cmd_backup.go b/cmd/restic/cmd_backup.go index aabdeba54..e476ae7b8 100644 --- a/cmd/restic/cmd_backup.go +++ b/cmd/restic/cmd_backup.go @@ -547,7 +547,7 @@ func runBackup(ctx context.Context, opts BackupOptions, gopts GlobalOptions, ter progressPrinter.V("load index files") } - bar := newTerminalProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded", term) + bar := newIndexTerminalProgress(gopts.Quiet, gopts.JSON, term) err = repo.LoadIndex(ctx, bar) if err != nil { diff --git a/cmd/restic/cmd_cat.go b/cmd/restic/cmd_cat.go index f311eee88..238614cd0 100644 --- a/cmd/restic/cmd_cat.go +++ b/cmd/restic/cmd_cat.go @@ -169,7 +169,7 @@ func runCat(ctx context.Context, gopts GlobalOptions, args []string) error { return err case "blob": - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) err = repo.LoadIndex(ctx, bar) if err != nil { return err @@ -198,7 +198,7 @@ func runCat(ctx context.Context, gopts GlobalOptions, args []string) error { return errors.Fatalf("could not find snapshot: %v\n", err) } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) err = repo.LoadIndex(ctx, bar) if err != nil { return err diff --git a/cmd/restic/cmd_copy.go b/cmd/restic/cmd_copy.go index 3f410fec6..f31c17adb 100644 --- a/cmd/restic/cmd_copy.go +++ b/cmd/restic/cmd_copy.go @@ -99,11 +99,11 @@ func runCopy(ctx context.Context, opts CopyOptions, gopts GlobalOptions, args [] } debug.Log("Loading source index") - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err := srcRepo.LoadIndex(ctx, bar); err != nil { return err } - bar = newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar = newIndexProgress(gopts.Quiet, gopts.JSON) debug.Log("Loading destination index") if err := dstRepo.LoadIndex(ctx, bar); err != nil { return err diff --git a/cmd/restic/cmd_debug.go b/cmd/restic/cmd_debug.go index 6ced508ff..bf05c448d 100644 --- a/cmd/restic/cmd_debug.go +++ b/cmd/restic/cmd_debug.go @@ -469,7 +469,7 @@ func runDebugExamine(ctx context.Context, gopts GlobalOptions, args []string) er } } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) err = repo.LoadIndex(ctx, bar) if err != nil { return err diff --git a/cmd/restic/cmd_diff.go b/cmd/restic/cmd_diff.go index bedbaae5d..125904068 100644 --- a/cmd/restic/cmd_diff.go +++ b/cmd/restic/cmd_diff.go @@ -363,7 +363,7 @@ func runDiff(ctx context.Context, opts DiffOptions, gopts GlobalOptions, args [] if !gopts.JSON { Verbosef("comparing snapshot %v to %v:\n\n", sn1.ID().Str(), sn2.ID().Str()) } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err = repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/cmd_dump.go b/cmd/restic/cmd_dump.go index 9e811bf61..8b9fa9624 100644 --- a/cmd/restic/cmd_dump.go +++ b/cmd/restic/cmd_dump.go @@ -152,7 +152,7 @@ func runDump(ctx context.Context, opts DumpOptions, gopts GlobalOptions, args [] return errors.Fatalf("failed to find snapshot: %v", err) } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) err = repo.LoadIndex(ctx, bar) if err != nil { return err diff --git a/cmd/restic/cmd_find.go b/cmd/restic/cmd_find.go index 7a6c4196f..9c21cc9bb 100644 --- a/cmd/restic/cmd_find.go +++ b/cmd/restic/cmd_find.go @@ -589,7 +589,7 @@ func runFind(ctx context.Context, opts FindOptions, gopts GlobalOptions, args [] if err != nil { return err } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err = repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/cmd_ls.go b/cmd/restic/cmd_ls.go index eaff272e0..a0c07a752 100644 --- a/cmd/restic/cmd_ls.go +++ b/cmd/restic/cmd_ls.go @@ -173,7 +173,7 @@ func runLs(ctx context.Context, opts LsOptions, gopts GlobalOptions, args []stri return err } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err = repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/cmd_mount.go b/cmd/restic/cmd_mount.go index 34411fe37..04c072daf 100644 --- a/cmd/restic/cmd_mount.go +++ b/cmd/restic/cmd_mount.go @@ -130,7 +130,7 @@ func runMount(ctx context.Context, opts MountOptions, gopts GlobalOptions, args } } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) err = repo.LoadIndex(ctx, bar) if err != nil { return err diff --git a/cmd/restic/cmd_prune.go b/cmd/restic/cmd_prune.go index 2f9d3069a..638a0de5e 100644 --- a/cmd/restic/cmd_prune.go +++ b/cmd/restic/cmd_prune.go @@ -187,7 +187,7 @@ func runPruneWithRepo(ctx context.Context, opts PruneOptions, gopts GlobalOption Verbosef("loading indexes...\n") // loading the index before the snapshots is ok, as we use an exclusive lock here - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) err := repo.LoadIndex(ctx, bar) if err != nil { return err diff --git a/cmd/restic/cmd_recover.go b/cmd/restic/cmd_recover.go index b7eaea087..63084dd5f 100644 --- a/cmd/restic/cmd_recover.go +++ b/cmd/restic/cmd_recover.go @@ -58,7 +58,7 @@ func runRecover(ctx context.Context, gopts GlobalOptions) error { } Verbosef("load index files\n") - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err = repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/cmd_repair_snapshots.go b/cmd/restic/cmd_repair_snapshots.go index 4c15cd465..720523762 100644 --- a/cmd/restic/cmd_repair_snapshots.go +++ b/cmd/restic/cmd_repair_snapshots.go @@ -89,7 +89,7 @@ func runRepairSnapshots(ctx context.Context, gopts GlobalOptions, opts RepairOpt return err } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err := repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/cmd_restore.go b/cmd/restic/cmd_restore.go index 6e3c3a757..494c6b86a 100644 --- a/cmd/restic/cmd_restore.go +++ b/cmd/restic/cmd_restore.go @@ -173,7 +173,7 @@ func runRestore(ctx context.Context, opts RestoreOptions, gopts GlobalOptions, return errors.Fatalf("failed to find snapshot: %v", err) } - bar := newTerminalProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded", term) + bar := newIndexTerminalProgress(gopts.Quiet, gopts.JSON, term) err = repo.LoadIndex(ctx, bar) if err != nil { return err diff --git a/cmd/restic/cmd_rewrite.go b/cmd/restic/cmd_rewrite.go index 816df71a9..9d9ab5d5d 100644 --- a/cmd/restic/cmd_rewrite.go +++ b/cmd/restic/cmd_rewrite.go @@ -212,7 +212,7 @@ func runRewrite(ctx context.Context, opts RewriteOptions, gopts GlobalOptions, a return err } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err = repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/cmd_stats.go b/cmd/restic/cmd_stats.go index 63048b455..f16b59d3c 100644 --- a/cmd/restic/cmd_stats.go +++ b/cmd/restic/cmd_stats.go @@ -98,7 +98,7 @@ func runStats(ctx context.Context, opts StatsOptions, gopts GlobalOptions, args if err != nil { return err } - bar := newProgressMax(!gopts.Quiet && !gopts.JSON, 0, "index files loaded") + bar := newIndexProgress(gopts.Quiet, gopts.JSON) if err = repo.LoadIndex(ctx, bar); err != nil { return err } diff --git a/cmd/restic/progress.go b/cmd/restic/progress.go index 56cca9ace..fe4f654d0 100644 --- a/cmd/restic/progress.go +++ b/cmd/restic/progress.go @@ -96,3 +96,11 @@ func printProgress(status string) { _, _ = os.Stdout.Write([]byte(clear + status + carriageControl)) } + +func newIndexProgress(quiet bool, json bool) *progress.Counter { + return newProgressMax(!quiet && !json, 0, "index files loaded") +} + +func newIndexTerminalProgress(quiet bool, json bool, term *termstatus.Terminal) *progress.Counter { + return newTerminalProgressMax(!quiet && !json, 0, "index files loaded", term) +}