1
0
mirror of https://github.com/coalaura/up.git synced 2025-07-17 21:44:35 +00:00
Files
up/client/progress.go
2025-06-20 17:10:03 +02:00

32 lines
517 B
Go

package main
import (
"io"
)
type ProgressReader struct {
io.Reader
label string
total int64
read int64
}
func NewProgressReader(label string, total int64, reader io.Reader) *ProgressReader {
return &ProgressReader{
Reader: reader,
label: label,
total: total,
}
}
func (pr *ProgressReader) Read(p []byte) (int, error) {
n, err := pr.Reader.Read(p)
pr.read += int64(n)
percentage := float64(pr.read) / float64(pr.total) * 100
log.Printf("\r%s %.1f%%", pr.label, percentage)
return n, err
}