Initialize bars in main

This commit is contained in:
Jan Bader 2021-08-06 00:18:59 +02:00
parent 1144e97045
commit c090b6645e
2 changed files with 31 additions and 11 deletions

View File

@ -9,7 +9,6 @@ import (
"sync" "sync"
"github.com/vbauerster/mpb/v7" "github.com/vbauerster/mpb/v7"
"github.com/vbauerster/mpb/v7/decor"
) )
// FilesMap is a struct for listing files by Size and Hash to search for duplicates // FilesMap is a struct for listing files by Size and Hash to search for duplicates
@ -26,6 +25,8 @@ type FilesMap struct {
incomingBar *mpb.Bar incomingBar *mpb.Bar
hashingBar *mpb.Bar
lock sync.Mutex lock sync.Mutex
} }
@ -53,6 +54,7 @@ func (fm *FilesMap) HashingWorker(wg *sync.WaitGroup) {
} }
file.hash = hash file.hash = hash
fm.hashingBar.IncrInt64(file.size)
fm.FilesHashed <- file fm.FilesHashed <- file
} }
wg.Done() wg.Done()
@ -74,16 +76,7 @@ func (fm *FilesMap) HashedWorker(done chan bool) {
func (fm *FilesMap) WalkDirectories() int { func (fm *FilesMap) WalkDirectories() int {
countFiles := 0 countFiles := 0
fm.incomingBar = fm.progress.AddSpinner(0, sumSize := int64(0)
mpb.PrependDecorators(
decor.Name("Finding files "),
decor.Elapsed(decor.ET_STYLE_HHMMSS),
),
mpb.AppendDecorators(
decor.AverageSpeed(0, "%f "),
decor.CountersNoUnit("%d / %d"),
),
)
for _, path := range flag.Args() { for _, path := range flag.Args() {
filepath.Walk(path, func(path string, info os.FileInfo, err error) error { filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
if info.IsDir() { if info.IsDir() {
@ -109,11 +102,14 @@ func (fm *FilesMap) WalkDirectories() int {
} }
if prevFile != "" { if prevFile != "" {
sumSize += size
fm.FilesHashing <- fileEntry{prevFile, size, ""} fm.FilesHashing <- fileEntry{prevFile, size, ""}
} }
fm.FilesBySize[size] = "" fm.FilesBySize[size] = ""
sumSize += size
fm.hashingBar.SetTotal(int64(sumSize), false)
fm.FilesHashing <- fileEntry{path, info.Size(), ""} fm.FilesHashing <- fileEntry{path, info.Size(), ""}
return nil return nil
}) })

24
main.go
View File

@ -14,6 +14,9 @@ import (
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
"github.com/vbauerster/mpb/v7"
"github.com/vbauerster/mpb/v7/decor"
) )
var fromFile = flag.String("from-file", "", "Load results file from <path>") var fromFile = flag.String("from-file", "", "Load results file from <path>")
@ -51,6 +54,27 @@ func main() {
panic(err) panic(err)
} }
} else { } else {
filesMap.incomingBar = filesMap.progress.AddSpinner(0,
mpb.PrependDecorators(
decor.Name("Finding files "),
decor.Elapsed(decor.ET_STYLE_HHMMSS),
),
mpb.AppendDecorators(
decor.AverageSpeed(0, "%8.2f"),
decor.Name(" "),
decor.CurrentNoUnit("%5d"),
),
)
filesMap.hashingBar = filesMap.progress.AddBar(0,
mpb.PrependDecorators(
decor.Name("Hashing files "),
decor.Elapsed(decor.ET_STYLE_HHMMSS),
),
mpb.AppendDecorators(
decor.AverageSpeed(decor.UnitKiB, "%23.2f"),
decor.Name(" "),
decor.CurrentKibiByte("%5d"),
))
done := make(chan bool) done := make(chan bool)
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
for i := 0; i < runtime.GOMAXPROCS(0); i++ { for i := 0; i < runtime.GOMAXPROCS(0); i++ {