From d94cc6f1d34517a86db14065fc7b8ada06829a88 Mon Sep 17 00:00:00 2001 From: h3yEllex Date: Tue, 24 Oct 2017 12:12:33 +0300 Subject: [PATCH] refactored CatFiles function --- utils.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/utils.go b/utils.go index 459bc283..9c238365 100644 --- a/utils.go +++ b/utils.go @@ -11,25 +11,26 @@ import ( "github.com/pkg/errors" ) -func CatFiles(files []string, outfile string, remove ...bool) error { +// CatFiles copies data from n files to a single one and removes source files +// if Debug mode is set to false +func CatFiles(files []string, outfile string, remove bool) error { finished, err := os.Create(outfile) - defer finished.Close() if err != nil { return errors.Wrap(err, "CatFiles create: ") } - for i := range files { - fh, err := os.Open(files[i]) + defer finished.Close() + for _, file := range files { + fh, err := os.Open(file) if err != nil { - return errors.Wrap(err, "CatFiles open "+files[i]+": ") + return errors.Wrap(err, fmt.Sprintf("CatFiles open %v: ", file)) } - + defer fh.Close() _, err = io.Copy(finished, fh) if err != nil { return errors.Wrap(err, "CatFiles copy: ") } - fh.Close() - if len(remove) > 0 && remove[0] { - os.Remove(files[i]) + if remove { + os.Remove(file) } } return nil