48
48
49
49
verbose_out = sys .stderr if args .verbose else open ("/dev/null" , "w" )
50
50
51
+
51
52
def get_refs ():
52
53
refs = {}
53
54
@@ -61,6 +62,7 @@ def get_refs():
61
62
62
63
return refs
63
64
65
+
64
66
def is_generated_file (filename , data , regexs ):
65
67
for d in skipped_ungenerated_files :
66
68
if d in filename :
@@ -69,6 +71,7 @@ def is_generated_file(filename, data, regexs):
69
71
p = regexs ["generated" ]
70
72
return p .search (data )
71
73
74
+
72
75
def file_passes (filename , refs , regexs ):
73
76
try :
74
77
f = open (filename , 'r' )
@@ -119,9 +122,11 @@ def file_passes(filename, refs, regexs):
119
122
for d in data :
120
123
if p .search (d ):
121
124
if generated :
122
- print ('File %s has the YEAR field, but it should not be in generated file' % filename , file = verbose_out )
125
+ print ('File %s has the YEAR field, but it should not be in generated file' %
126
+ filename , file = verbose_out )
123
127
else :
124
- print ('File %s has the YEAR field, but missing the year of date' % filename , file = verbose_out )
128
+ print ('File %s has the YEAR field, but missing the year of date' %
129
+ filename , file = verbose_out )
125
130
return False
126
131
127
132
if not generated :
@@ -134,7 +139,8 @@ def file_passes(filename, refs, regexs):
134
139
135
140
# if we don't match the reference at this point, fail
136
141
if ref != data :
137
- print ("Header in %s does not match reference, diff:" % filename , file = verbose_out )
142
+ print ("Header in %s does not match reference, diff:" %
143
+ filename , file = verbose_out )
138
144
if args .verbose :
139
145
print (file = verbose_out )
140
146
for line in difflib .unified_diff (ref , data , 'reference' , filename , lineterm = '' ):
@@ -144,15 +150,19 @@ def file_passes(filename, refs, regexs):
144
150
145
151
return True
146
152
153
+
147
154
def file_extension (filename ):
148
155
return os .path .splitext (filename )[1 ].split ("." )[- 1 ].lower ()
149
156
157
+
150
158
skipped_dirs = ['Godeps' , 'third_party' , '_gopath' , '_output' , '.git' , 'cluster/env.sh' ,
151
159
"vendor" , "test/e2e/generated/bindata.go" , "hack/boilerplate/test" ,
152
160
"staging/src/k8s.io/kubectl/pkg/generated/bindata.go" ]
153
161
154
162
# list all the files contain 'DO NOT EDIT', but are not generated
155
- skipped_ungenerated_files = ['hack/lib/swagger.sh' , 'hack/boilerplate/boilerplate.py' ]
163
+ skipped_ungenerated_files = [
164
+ 'hack/lib/swagger.sh' , 'hack/boilerplate/boilerplate.py' ]
165
+
156
166
157
167
def normalize_files (files ):
158
168
newfiles = []
@@ -165,6 +175,7 @@ def normalize_files(files):
165
175
newfiles [i ] = os .path .join (args .rootdir , pathname )
166
176
return newfiles
167
177
178
+
168
179
def get_files (extensions ):
169
180
files = []
170
181
if len (args .filenames ) > 0 :
@@ -192,25 +203,29 @@ def get_files(extensions):
192
203
outfiles .append (pathname )
193
204
return outfiles
194
205
206
+
195
207
def get_dates ():
196
208
years = datetime .datetime .now ().year
197
209
return '(%s)' % '|' .join ((str (year ) for year in range (2014 , years + 1 )))
198
210
211
+
199
212
def get_regexs ():
200
213
regexs = {}
201
214
# Search for "YEAR" which exists in the boilerplate, but shouldn't in the real thing
202
- regexs ["year" ] = re .compile ( 'YEAR' )
215
+ regexs ["year" ] = re .compile ('YEAR' )
203
216
# get_dates return 2014, 2015, 2016, 2017, or 2018 until the current year as a regex like: "(2014|2015|2016|2017|2018)";
204
217
# company holder names can be anything
205
218
regexs ["date" ] = re .compile (get_dates ())
206
219
# strip // +build \n\n build constraints
207
- regexs ["go_build_constraints" ] = re .compile (r"^(// \+build.*\n)+\n" , re .MULTILINE )
220
+ regexs ["go_build_constraints" ] = re .compile (
221
+ r"^(// \+build.*\n)+\n" , re .MULTILINE )
208
222
# strip #!.* from scripts
209
223
regexs ["shebang" ] = re .compile (r"^(#!.*\n)\n*" , re .MULTILINE )
210
224
# Search for generated files
211
- regexs ["generated" ] = re .compile ( 'DO NOT EDIT' )
225
+ regexs ["generated" ] = re .compile ('DO NOT EDIT' )
212
226
return regexs
213
227
228
+
214
229
def main ():
215
230
regexs = get_regexs ()
216
231
refs = get_refs ()
@@ -222,5 +237,6 @@ def main():
222
237
223
238
return 0
224
239
240
+
225
241
if __name__ == "__main__" :
226
- sys .exit (main ())
242
+ sys .exit (main ())
0 commit comments