From fd1a812fc2d04f88c0c3f5b9f2dcda0d0f77aa25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= Date: Thu, 19 Dec 2019 12:20:28 +0100 Subject: [PATCH] Add verbose option to print filename when modified Adds the -v option which prints the name of the files that have been modified. --- main.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index f1deca0..4d08891 100644 --- a/main.go +++ b/main.go @@ -49,6 +49,7 @@ var ( license = flag.String("l", "apache", "license type: apache, bsd, mit") licensef = flag.String("f", "", "license file") year = flag.String("y", fmt.Sprint(time.Now().Year()), "copyright year(s)") + verbose = flag.Bool("v", false, "verbose mode: print the name of the files that are modified") ) func main() { @@ -95,11 +96,15 @@ func main() { for f := range ch { wg.Add(1) go func(f *file) { - err := addLicense(f.path, f.mode, t, data) + defer wg.Done() + modified, err := addLicense(f.path, f.mode, t, data) if err != nil { log.Printf("%s: %v", f.path, err) + return + } + if *verbose && modified { + log.Printf("%s modified", f.path) } - wg.Done() }(f) } wg.Wait() @@ -132,12 +137,12 @@ func walk(ch chan<- *file, start string) { }) } -func addLicense(path string, fmode os.FileMode, tmpl *template.Template, data *copyrightData) error { +func addLicense(path string, fmode os.FileMode, tmpl *template.Template, data *copyrightData) (bool, error) { var lic []byte var err error switch fileExtension(path) { default: - return nil + return false, nil case ".c", ".h": lic, err = prefix(tmpl, data, "/*", " * ", " */") case ".js", ".jsx", ".tsx", ".css", ".tf", ".ts": @@ -160,12 +165,12 @@ func addLicense(path string, fmode os.FileMode, tmpl *template.Template, data *c lic, err = prefix(tmpl, data, "(**", " ", "*)") } if err != nil || lic == nil { - return err + return false, err } b, err := ioutil.ReadFile(path) if err != nil || hasLicense(b) { - return err + return false, err } line := hashBang(b) @@ -177,7 +182,7 @@ func addLicense(path string, fmode os.FileMode, tmpl *template.Template, data *c lic = append(line, lic...) } b = append(lic, b...) - return ioutil.WriteFile(path, b, fmode) + return true, ioutil.WriteFile(path, b, fmode) } func fileExtension(name string) string {