restore: embed progress.Printer in restore-specific printer

This commit is contained in:
Michael Eischer
2025-10-03 18:55:46 +02:00
parent 1a76f988ea
commit 1939cff334
6 changed files with 29 additions and 21 deletions
+4
View File
@@ -4,15 +4,19 @@ import (
"time"
"github.com/restic/restic/internal/ui"
"github.com/restic/restic/internal/ui/progress"
)
type jsonPrinter struct {
progress.Printer
terminal ui.Terminal
verbosity uint
}
func NewJSONProgress(terminal ui.Terminal, verbosity uint) ProgressPrinter {
return &jsonPrinter{
Printer: ui.NewProgressPrinter(true, verbosity, terminal),
terminal: terminal,
verbosity: verbosity,
}
+1
View File
@@ -38,6 +38,7 @@ type ProgressPrinter interface {
Error(item string, err error) error
CompleteItem(action ItemAction, item string, size uint64)
Finish(progress State, duration time.Duration)
progress.Printer
}
type ItemAction string
+2
View File
@@ -6,6 +6,7 @@ import (
"github.com/restic/restic/internal/errors"
"github.com/restic/restic/internal/test"
"github.com/restic/restic/internal/ui/progress"
)
type printerTraceEntry struct {
@@ -36,6 +37,7 @@ type mockPrinter struct {
trace printerTrace
items itemTrace
errors errorTrace
progress.NoopPrinter
}
const mockFinishDuration = 42 * time.Second
+3 -2
View File
@@ -5,17 +5,18 @@ import (
"time"
"github.com/restic/restic/internal/ui"
"github.com/restic/restic/internal/ui/progress"
)
type textPrinter struct {
*ui.Message
progress.Printer
terminal ui.Terminal
}
func NewTextProgress(terminal ui.Terminal, verbosity uint) ProgressPrinter {
return &textPrinter{
Message: ui.NewMessage(terminal, verbosity),
Printer: ui.NewProgressPrinter(false, verbosity, terminal),
terminal: terminal,
}
}