mirror of
https://git.sr.ht/~phw/scotty
synced 2025-06-05 04:58:33 +02:00
Use the transfer context also for the progress bars
This commit is contained in:
parent
3b545a0fd6
commit
adfe3f5771
2 changed files with 14 additions and 6 deletions
|
@ -110,11 +110,13 @@ func (c *TransferCmd[E, I, R]) Transfer(exp backends.ExportProcessor[R], imp bac
|
|||
}
|
||||
printTimestamp("From timestamp: %v (%v)", timestamp)
|
||||
|
||||
// Use a context with cancel to abort the transfer
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
// Prepare progress bars
|
||||
progressChan := make(chan models.TransferProgress)
|
||||
progress := setupProgressBars(progressChan)
|
||||
progress := setupProgressBars(ctx, progressChan)
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
wg := &sync.WaitGroup{}
|
||||
|
||||
// Export from source
|
||||
|
@ -126,8 +128,12 @@ func (c *TransferCmd[E, I, R]) Transfer(exp backends.ExportProcessor[R], imp bac
|
|||
go imp.Process(ctx, wg, exportChan, resultChan, progressChan)
|
||||
result := <-resultChan
|
||||
|
||||
// Once import is done, the context can be cancelled
|
||||
cancel()
|
||||
// If the import has errored, the context can be cancelled immediately
|
||||
if result.Error != nil {
|
||||
cancel()
|
||||
} else {
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
// Wait for all goroutines to finish
|
||||
wg.Wait()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue