From a34d01041d55784b7678e64a8e6ae0760a7f881e Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 20 May 2018 00:46:00 -0400 Subject: cow-dedupe: better statuses --- go/src/cow-dedupe/dedupe.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'go/src/cow-dedupe/dedupe.go') diff --git a/go/src/cow-dedupe/dedupe.go b/go/src/cow-dedupe/dedupe.go index 0268ed3..457e377 100644 --- a/go/src/cow-dedupe/dedupe.go +++ b/go/src/cow-dedupe/dedupe.go @@ -80,10 +80,9 @@ func getFiemaps(paths []string) map[string][]string { return ret } -func getChecksums(cmd []string, paths []string) map[string][]string { +func getChecksums(sl statusline.StatusLine, cmd []string, paths []string) map[string][]string { ret := map[string][]string{} - sl := myStatusLine() cnt := 0 sl.Put(fmt.Sprintf("Generating checksums (%v) for files... %d/%d", cmd, cnt, len(paths))) @@ -188,14 +187,14 @@ func main() { sl.Put(fmt.Sprintf("Building list of spanning files... done; %d files", len(spanningFiles))) sl.End(true) - size2filenames := getChecksums([]string{"stat", "--printf=%s %n\\n", "--"}, spanningFiles) - fmt.Fprintf(" -> %d sets", len(size2filenames)) + size2filenames := getChecksums(myStatusLine(), []string{"stat", "--printf=%s %n\\n", "--"}, spanningFiles) + fmt.Fprintf(os.Stderr, " -> %d sets", len(size2filenames)) pruneSingles(size2filenames) - fmt.Fprintf(" -> %d non-trivial sets\n", len(size2filenames)) + fmt.Fprintf(os.Stderr, " -> %d non-trivial sets\n", len(size2filenames)) sl = myStatusLine() sizeCnt := 0 - for size, filenames := range size2filenames { + for _, filenames := range size2filenames { // The list of specific files in size2filenames isn't // significant; they'e just proxies for fiemaps. sizeStatus := fmt.Sprintf("Working on size-set %d/%d of %d fiemaps", @@ -203,11 +202,12 @@ func main() { sl.Put(sizeStatus) // Now do strict hashing, instead of the incredibly // sloppy (but fast) size-bucketing. - checksum2filenames := getChecksums([]string{"sha256sum", "--"}, filenames) + checksum2filenames := getChecksums(statusline.Prefix(myStatusLine(), sizeStatus+" :: "), []string{"sha256sum", "--"}, filenames) + sl.Put(sizeStatus) pruneSingles(checksum2filenames) // And loop over the smaller, precise buckets sumCnt := 0 - for checksum, filenames := range checksum2fiemaps { + for _, filenames := range checksum2filenames { sl.Put(fmt.Sprintf("%s :: sha256-set %d/%d of %d fiemaps", sizeStatus, sumCnt, len(checksum2filenames), len(filenames))) var fiemaps []string for _, filename := range filenames { -- cgit v1.2.3