Use processed bytes for summary

When restic reads the backup from stdin, the number of bytes processed
was always displayed as zero. The reason is that the UI for the archive
uses the total bytes as returned by the scanner, which is zero for
stdin. So instead we keep track of the real number of bytes processed
and print that at the end.

Closes #2136
This commit is contained in:
Alexander Neumann 2019-01-06 13:15:23 +01:00
parent 0dd805421e
commit 7c084014fa

View file

@ -49,6 +49,7 @@ type Backup struct {
Changed uint
Unchanged uint
}
ProcessedBytes uint64
archiver.ItemStats
}
}
@ -259,6 +260,12 @@ func formatBytes(c uint64) string {
func (b *Backup) CompleteItemFn(item string, previous, current *restic.Node, s archiver.ItemStats, d time.Duration) {
b.summary.Lock()
b.summary.ItemStats.Add(s)
// for the last item "/", current is nil
if current != nil {
b.summary.ProcessedBytes += current.Size
}
b.summary.Unlock()
if current == nil {
@ -361,7 +368,7 @@ func (b *Backup) Finish() {
b.P("\n")
b.P("processed %v files, %v in %s",
b.summary.Files.New+b.summary.Files.Changed+b.summary.Files.Unchanged,
formatBytes(b.totalBytes),
formatBytes(b.summary.ProcessedBytes),
formatDuration(time.Since(b.start)),
)
}