Fix progress line not clearing before final status

This commit is contained in:
Jeffrey Paul 2025-12-17 15:01:32 -08:00
parent 21028af9aa
commit 45201509ff

View File

@ -3,6 +3,7 @@ package cli
import (
"fmt"
"path/filepath"
"sync"
"time"
"github.com/spf13/afero"
@ -28,9 +29,12 @@ func (mfa *CLIApp) generateManifestOperation(ctx *cli.Context) error {
// Set up enumeration progress reporting
var enumProgress chan scanner.EnumerateStatus
var enumWg sync.WaitGroup
if showProgress {
enumProgress = make(chan scanner.EnumerateStatus, 1)
enumWg.Add(1)
go func() {
defer enumWg.Done()
for status := range enumProgress {
log.Progressf("Enumerating: %d files, %.1f MB",
status.FilesFound,
@ -60,6 +64,7 @@ func (mfa *CLIApp) generateManifestOperation(ctx *cli.Context) error {
return err
}
}
enumWg.Wait()
log.Debugf("enumerated %d files, %d bytes total", s.FileCount(), s.TotalBytes())
@ -80,9 +85,12 @@ func (mfa *CLIApp) generateManifestOperation(ctx *cli.Context) error {
// Phase 2: Scan - read file contents and generate manifest
var scanProgress chan scanner.ScanStatus
var scanWg sync.WaitGroup
if showProgress {
scanProgress = make(chan scanner.ScanStatus, 1)
scanWg.Add(1)
go func() {
defer scanWg.Done()
for status := range scanProgress {
if status.ETA > 0 {
log.Progressf("Scanning: %d/%d files, %.1f MB/s, ETA %s",
@ -102,6 +110,7 @@ func (mfa *CLIApp) generateManifestOperation(ctx *cli.Context) error {
}
err = s.ToManifest(ctx.Context, outFile, scanProgress)
scanWg.Wait()
if err != nil {
return fmt.Errorf("failed to generate manifest: %w", err)
}