48
48
`
49
49
50
50
var (
51
+ skipExtensionFlags skipExtensionFlag
52
+
51
53
holder = flag .String ("c" , "Google LLC" , "copyright holder" )
52
54
license = flag .String ("l" , "apache" , "license type: apache, bsd, mit, mpl" )
53
55
licensef = flag .String ("f" , "" , "license file" )
@@ -56,11 +58,23 @@ var (
56
58
checkonly = flag .Bool ("check" , false , "check only mode: verify presence of license headers and exit with non-zero code if missing" )
57
59
)
58
60
61
+ type skipExtensionFlag []string
62
+
63
+ func (i * skipExtensionFlag ) String () string {
64
+ return fmt .Sprint (* i )
65
+ }
66
+
67
+ func (i * skipExtensionFlag ) Set (value string ) error {
68
+ * i = append (* i , value )
69
+ return nil
70
+ }
71
+
59
72
func main () {
60
73
flag .Usage = func () {
61
74
fmt .Fprintln (os .Stderr , helpText )
62
75
flag .PrintDefaults ()
63
76
}
77
+ flag .Var (& skipExtensionFlags , "skip" , "To skip files to check/add the header file, for example: -skip rb -skip go" )
64
78
flag .Parse ()
65
79
if flag .NArg () == 0 {
66
80
flag .Usage ()
@@ -161,6 +175,12 @@ func walk(ch chan<- *file, start string) {
161
175
if fi .IsDir () {
162
176
return nil
163
177
}
178
+ for _ , skip := range skipExtensionFlags {
179
+ if strings .TrimPrefix (filepath .Ext (fi .Name ()), "." ) == skip || fi .Name () == skip {
180
+ log .Printf ("%s: skipping this file" , fi .Name ())
181
+ return nil
182
+ }
183
+ }
164
184
ch <- & file {path , fi .Mode ()}
165
185
return nil
166
186
})
@@ -272,6 +292,7 @@ func hashBang(b []byte) []byte {
272
292
273
293
// go generate: ^// Code generated .* DO NOT EDIT\.$
274
294
var goGenerated = regexp .MustCompile (`(?m)^.{1,2} Code generated .* DO NOT EDIT\.$` )
295
+
275
296
// cargo raze: ^DO NOT EDIT! Replaced on runs of cargo-raze$
276
297
var cargoRazeGenerated = regexp .MustCompile (`(?m)^DO NOT EDIT! Replaced on runs of cargo-raze$` )
277
298
0 commit comments