Add verbose option to print filename when modified

Adds the -v option which prints the name of the files that have been
modified.
This commit is contained in:
Thiébaud Weksteen
2019-12-19 12:20:28 +01:00
parent c6b7f1e7f3
commit fd1a812fc2

19
main.go
View File

@@ -49,6 +49,7 @@ var (
license = flag.String("l", "apache", "license type: apache, bsd, mit") license = flag.String("l", "apache", "license type: apache, bsd, mit")
licensef = flag.String("f", "", "license file") licensef = flag.String("f", "", "license file")
year = flag.String("y", fmt.Sprint(time.Now().Year()), "copyright year(s)") 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() { func main() {
@@ -95,11 +96,15 @@ func main() {
for f := range ch { for f := range ch {
wg.Add(1) wg.Add(1)
go func(f *file) { 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 { if err != nil {
log.Printf("%s: %v", f.path, err) log.Printf("%s: %v", f.path, err)
return
}
if *verbose && modified {
log.Printf("%s modified", f.path)
} }
wg.Done()
}(f) }(f)
} }
wg.Wait() 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 lic []byte
var err error var err error
switch fileExtension(path) { switch fileExtension(path) {
default: default:
return nil return false, nil
case ".c", ".h": case ".c", ".h":
lic, err = prefix(tmpl, data, "/*", " * ", " */") lic, err = prefix(tmpl, data, "/*", " * ", " */")
case ".js", ".jsx", ".tsx", ".css", ".tf", ".ts": 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, "(**", " ", "*)") lic, err = prefix(tmpl, data, "(**", " ", "*)")
} }
if err != nil || lic == nil { if err != nil || lic == nil {
return err return false, err
} }
b, err := ioutil.ReadFile(path) b, err := ioutil.ReadFile(path)
if err != nil || hasLicense(b) { if err != nil || hasLicense(b) {
return err return false, err
} }
line := hashBang(b) line := hashBang(b)
@@ -177,7 +182,7 @@ func addLicense(path string, fmode os.FileMode, tmpl *template.Template, data *c
lic = append(line, lic...) lic = append(line, lic...)
} }
b = append(lic, b...) b = append(lic, b...)
return ioutil.WriteFile(path, b, fmode) return true, ioutil.WriteFile(path, b, fmode)
} }
func fileExtension(name string) string { func fileExtension(name string) string {