diff --git a/dbbackup b/dbbackup index e3bc232..e0d2ee0 100755 Binary files a/dbbackup and b/dbbackup differ diff --git a/dbbackup_linux_amd64 b/dbbackup_linux_amd64 index e3bc232..e0d2ee0 100755 Binary files a/dbbackup_linux_amd64 and b/dbbackup_linux_amd64 differ diff --git a/internal/restore/engine.go b/internal/restore/engine.go index 893fb97..c3696e4 100644 --- a/internal/restore/engine.go +++ b/internal/restore/engine.go @@ -40,6 +40,21 @@ func New(cfg *config.Config, log logger.Logger, db database.Database) *Engine { } } +// NewSilent creates a new restore engine with no stdout progress (for TUI mode) +func NewSilent(cfg *config.Config, log logger.Logger, db database.Database) *Engine { + progressIndicator := progress.NewNullIndicator() + detailedReporter := progress.NewDetailedReporter(progressIndicator, &loggerAdapter{logger: log}) + + return &Engine{ + cfg: cfg, + log: log, + db: db, + progress: progressIndicator, + detailedReporter: detailedReporter, + dryRun: false, + } +} + // NewWithProgress creates a restore engine with custom progress indicator func NewWithProgress(cfg *config.Config, log logger.Logger, db database.Database, progressIndicator progress.Indicator, dryRun bool) *Engine { if progressIndicator == nil { diff --git a/internal/tui/restore_exec.go b/internal/tui/restore_exec.go index 5a0fa7d..2ab7d4f 100644 --- a/internal/tui/restore_exec.go +++ b/internal/tui/restore_exec.go @@ -103,8 +103,8 @@ func executeRestoreWithTUIProgress(cfg *config.Config, log logger.Logger, archiv } defer dbClient.Close() - // Create restore engine - engine := restore.New(cfg, log, dbClient) + // Create restore engine with silent progress (no stdout interference with TUI) + engine := restore.NewSilent(cfg, log, dbClient) // Execute restore based on type var restoreErr error