Print snapshot list and purge sizes like every other command (closes #312)
check / check (push) Waiting to run
check / check (push) Waiting to run
`snapshot list`, the `snapshot purge` listing and the `bytes` value in terminal log lines divided by 1024 while labelling the result KB or MB, so 6,329,198 bytes read 6.0 MB there and 6.3 MB in every other command. All three now use humanize.Bytes, as the rest of the program does, and the 1024-based helper in internal/vaultik is removed. The size shared by the list tests is now 5,000,000 bytes, which the two ways of counting print differently. Judgement call: the log handler's copy of the formatter is changed too, since the issue asks that every command print a byte count the same way. Model: opus-5-5
This commit was merged in pull request #358.
This commit is contained in:
@@ -10,6 +10,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
"unicode"
|
||||
|
||||
"github.com/dustin/go-humanize"
|
||||
)
|
||||
|
||||
// groupSeparator joins an open group path to an attribute key. This
|
||||
@@ -304,18 +306,13 @@ func formatDuration(d time.Duration) string {
|
||||
}
|
||||
}
|
||||
|
||||
// formatBytes formats bytes in a human-readable way
|
||||
// formatBytes formats a byte count with humanize.Bytes, as every command
|
||||
// prints one. humanize.Bytes takes no negative count, so one is printed
|
||||
// as it is.
|
||||
func formatBytes(b int64) string {
|
||||
const unit = 1024
|
||||
if b < unit {
|
||||
if b < 0 {
|
||||
return fmt.Sprintf("%d B", b)
|
||||
}
|
||||
|
||||
div, exp := int64(unit), 0
|
||||
for n := b / unit; n >= unit; n /= unit {
|
||||
div *= unit
|
||||
exp++
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%.1f %cB", float64(b)/float64(div), "KMGTPE"[exp])
|
||||
return humanize.Bytes(uint64(b))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user