defer lock and handle errors

This commit is contained in:
Celogeek 2024-03-03 12:05:44 +01:00
parent a9254b7977
commit 40a79e8e6b
Signed by: celogeek
SSH Key Fingerprint: SHA256:njNJLzoLQdbV9PC6ehcruRb0QnEgxABoCYZ+0+aUIYc

View File

@ -22,7 +22,7 @@ type FileToUploadStat struct {
func NewFileToUploadStat() *FileToUploadStat { func NewFileToUploadStat() *FileToUploadStat {
bar := progressbar.DefaultBytes(1, "...") bar := progressbar.DefaultBytes(1, "...")
progressbar.OptionOnCompletion(func() { os.Stderr.WriteString("\n") })(bar) progressbar.OptionOnCompletion(func() { _, _ = os.Stderr.WriteString("\n") })(bar)
return &FileToUploadStat{ return &FileToUploadStat{
Progress: bar, Progress: bar,
} }
@ -43,63 +43,70 @@ func (s *FileToUploadStat) Refresh() {
func (s *FileToUploadStat) Check() { func (s *FileToUploadStat) Check() {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.Checked++ s.Checked++
s.Refresh() s.Refresh()
s.mu.Unlock()
} }
func (s *FileToUploadStat) AddBytes(filesize int64) { func (s *FileToUploadStat) AddBytes(filesize int64) {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.TotalBytes += filesize s.TotalBytes += filesize
s.Progress.ChangeMax64(s.TotalBytes + 1) s.Progress.ChangeMax64(s.TotalBytes + 1)
s.Refresh() s.Refresh()
s.mu.Unlock()
} }
func (s *FileToUploadStat) Add() { func (s *FileToUploadStat) Add() {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.Total++ s.Total++
s.Refresh() s.Refresh()
s.mu.Unlock()
} }
func (s *FileToUploadStat) Commit(fileread int64) { func (s *FileToUploadStat) Commit(fileread int64) {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.UploadedBytes += fileread s.UploadedBytes += fileread
s.Progress.Set64(s.UploadedBytes) _ = s.Progress.Set64(s.UploadedBytes)
s.mu.Unlock()
} }
func (s *FileToUploadStat) Done() { func (s *FileToUploadStat) Done() {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.Uploaded++ s.Uploaded++
s.Refresh() s.Refresh()
s.mu.Unlock()
} }
func (s *FileToUploadStat) Close() { func (s *FileToUploadStat) Close() {
s.Progress.Close() _ = s.Progress.Close()
} }
func (s *FileToUploadStat) Fail() { func (s *FileToUploadStat) Fail() {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.Failed++ s.Failed++
s.Refresh() s.Refresh()
s.mu.Unlock()
} }
func (s *FileToUploadStat) Skip() { func (s *FileToUploadStat) Skip() {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock()
s.Skipped++ s.Skipped++
s.Refresh() s.Refresh()
s.mu.Unlock()
} }
func (s *FileToUploadStat) Error(origin string, filename string, err error) error { func (s *FileToUploadStat) Error(origin string, filename string, err error) {
s.mu.Lock() s.mu.Lock()
s.Progress.Clear() defer s.mu.Unlock()
_ = s.Progress.Clear()
fmt.Printf("[%s] %s: %s\n", origin, filename, err) fmt.Printf("[%s] %s: %s\n", origin, filename, err)
s.Progress.RenderBlank() _ = s.Progress.RenderBlank()
s.mu.Unlock()
return err
} }