diff --git a/cmd/restic/global.go b/cmd/restic/global.go index ef69eabc3..bfb8ba9e8 100644 --- a/cmd/restic/global.go +++ b/cmd/restic/global.go @@ -232,7 +232,7 @@ func Warnf(format string, args ...interface{}) { // Exitf uses Warnf to write the message and then terminates the process with // the given exit code. func Exitf(exitcode int, format string, args ...interface{}) { - if format[len(format)-1] != '\n' { + if !(strings.HasSuffix(format, "\n")) { format += "\n" } diff --git a/internal/checker/checker.go b/internal/checker/checker.go index fcb9db490..2e2e233d6 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -132,9 +132,8 @@ func (c *Checker) LoadIndex(ctx context.Context) (hints []error, errs []error) { } // final closes indexCh after all workers have terminated - final := func() error { + final := func() { close(resultCh) - return nil } // run workers on ch diff --git a/internal/repository/repository.go b/internal/repository/repository.go index 0c71fb3bb..67df4b3b2 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -454,9 +454,8 @@ func (r *Repository) LoadIndex(ctx context.Context) error { } // final closes indexCh after all workers have terminated - final := func() error { + final := func() { close(indexCh) - return nil } // run workers on ch diff --git a/internal/repository/worker_group.go b/internal/repository/worker_group.go index ab09d441f..20783b188 100644 --- a/internal/repository/worker_group.go +++ b/internal/repository/worker_group.go @@ -10,7 +10,7 @@ import ( // After all workers have terminated, finalFunc is run. If an error occurs in // one of the workers, it is returned. FinalFunc is always run, regardless of // any other previous errors. -func RunWorkers(ctx context.Context, count int, workerFunc, finalFunc func() error) error { +func RunWorkers(ctx context.Context, count int, workerFunc func() error, finalFunc func()) error { wg, ctx := errgroup.WithContext(ctx) // run workers @@ -22,14 +22,8 @@ func RunWorkers(ctx context.Context, count int, workerFunc, finalFunc func() err err := wg.Wait() // make sure finalFunc is run - finalErr := finalFunc() + finalFunc() - // if the workers returned an error, return it to the caller (disregarding - // any error from finalFunc) - if err != nil { - return err - } - - // if not, return the value finalFunc returned - return finalErr + // return error from workers to the caller + return err }