From 66a9ae73e5dd675afe6f7b02bb4eebb03a6e5d06 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Sun, 22 Nov 2020 01:57:24 +0100 Subject: [PATCH] Display statistics --- filesmap.go | 5 ++++- main.go | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/filesmap.go b/filesmap.go index cd2b527..9f15a88 100644 --- a/filesmap.go +++ b/filesmap.go @@ -94,7 +94,8 @@ func (fm *FilesMap) HashedWorker(done chan bool) { done <- true } -func (fm *FilesMap) WalkDirectories() { +func (fm *FilesMap) WalkDirectories() int { + countFiles := 0 for _, path := range flag.Args() { filepath.Walk(path, func(path string, info os.FileInfo, err error) error { if info.IsDir() { @@ -102,9 +103,11 @@ func (fm *FilesMap) WalkDirectories() { } fm.FilesIncoming <- fileEntry{path, info.Size(), ""} + countFiles++ return nil }) } close(fm.FilesIncoming) + return countFiles } diff --git a/main.go b/main.go index 35ebdfd..24dfad6 100644 --- a/main.go +++ b/main.go @@ -40,7 +40,7 @@ func main() { if *verbose { printConfiguration() } - + countFiles := 0 filesMap := newFilesMap() if *fromFile != "" { byteValue, _ := ioutil.ReadFile(*fromFile) @@ -60,7 +60,7 @@ func main() { go filesMap.HashedWorker(done) - filesMap.WalkDirectories() + countFiles = filesMap.WalkDirectories() wg.Wait() close(filesMap.FilesHashed) @@ -128,17 +128,29 @@ func main() { } } } else { + + countInstances := 0 + countDupeSets := 0 for hash := range filesMap.FilesByHash { duplicateFiles := filesMap.FilesByHash[hash] if len(duplicateFiles) <= 1 { continue } + countDupeSets++ for _, file := range duplicateFiles { + countInstances++ fmt.Println(file) } fmt.Println() } + + fmt.Println("Statistics:") + fmt.Println(countFiles, "Files") + fmt.Println(len(filesMap.FilesBySize), "Unique Sizes") + fmt.Println(len(filesMap.FilesByHash), "Unique Hashes") + fmt.Println(countInstances, "Duplicate Files") + fmt.Println(countDupeSets, "Duplicate Sets") } }