FIXED: TUI progess status and creating tar archive

This commit is contained in:
2025-11-05 10:29:29 +00:00
parent a8380135cd
commit 2dd41a2b6e
4 changed files with 63 additions and 11 deletions

View File

@ -61,7 +61,18 @@ func (m BackupExecutionModel) Init() tea.Cmd {
})
})
return executeBackupWithTUIProgress(m.config, m.logger, m.backupType, m.databaseName, m.ratio, reporter)
return tea.Batch(
executeBackupWithTUIProgress(m.config, m.logger, m.backupType, m.databaseName, m.ratio, reporter),
backupTickCmd(),
)
}
type backupTickMsg time.Time
func backupTickCmd() tea.Cmd {
return tea.Tick(time.Millisecond*100, func(t time.Time) tea.Msg {
return backupTickMsg(t)
})
}
type backupProgressMsg struct {
@ -142,6 +153,12 @@ func executeBackupWithTUIProgress(cfg *config.Config, log logger.Logger, backupT
func (m BackupExecutionModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
case backupTickMsg:
if !m.done {
return m, backupTickCmd()
}
return m, nil
case backupProgressMsg:
m.status = msg.status
m.progress = msg.progress

View File

@ -37,7 +37,18 @@ func NewStatusView(cfg *config.Config, log logger.Logger, parent tea.Model) Stat
}
func (m StatusViewModel) Init() tea.Cmd {
return fetchStatus(m.config, m.logger)
return tea.Batch(
fetchStatus(m.config, m.logger),
tickCmd(),
)
}
type tickMsg time.Time
func tickCmd() tea.Cmd {
return tea.Tick(time.Millisecond*100, func(t time.Time) tea.Msg {
return tickMsg(t)
})
}
type statusMsg struct {
@ -98,6 +109,12 @@ func fetchStatus(cfg *config.Config, log logger.Logger) tea.Cmd {
func (m StatusViewModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
case tickMsg:
if m.loading {
return m, tickCmd()
}
return m, nil
case statusMsg:
m.loading = false
if msg.status != "" {