From bdb05f6f8e622ae7c615d3f686bf2a997746c840 Mon Sep 17 00:00:00 2001 From: Amos Ng Date: Sat, 8 Jan 2022 22:24:28 +0800 Subject: [PATCH] Combine hash calculating into backup step --- main.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index c9f3dd6..ef0ff94 100644 --- a/main.go +++ b/main.go @@ -90,23 +90,17 @@ func Rewrite(path string, info os.FileInfo, err error) error { } defer backupFile.Close() - // Copy to backup file + // Copy to backup file while calculating hash log.Infof("Backing up file '%s'", path) bar := progressbar.DefaultBytes(info.Size(), "backing up") - _, err = io.Copy(io.MultiWriter(backupFile, bar), file) - if err != nil { + oldHash := sha256.New() + if _, err = io.Copy(io.MultiWriter(backupFile, bar, oldHash), file); err != nil { return err } bar.Finish() backupFile.Sync() log.Infof("Backed up file '%s'", path) - // Calculate original hash - oldHash := sha256.New() - if _, err := io.Copy(oldHash, file); err != nil { - return err - } - // Prepare buffer buf := make([]byte, 2)