Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: tools/refactoring/addfileheader.py

Issue 1581573003: Remove tools/refactoring. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/refactoring/filemanagement.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2
3 import stringmanipulation
4 import filemanagement
5 import sys
6
7 extensions = ['.h','.cc','.c','.cpp']
8
9 ignore_these = ['my_ignore_header.h']
10
11 if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
12 print 'parameters are: directory [--commit]'
13 quit()
14
15 directory = sys.argv[1];
16 if(not filemanagement.pathexist(directory)):
17 print 'path ' + directory + ' does not exist'
18 quit()
19
20 if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
21 print 'parameters are: parent directory extension new extension [--commit]'
22 quit()
23
24 commit = False
25 if(len(sys.argv) == 3):
26 commit = True
27
28 files_to_fix = []
29 for extension in extensions:
30 files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\
31 extension))
32
33 # Just steal the header from the template
34 def fileheaderasstring():
35 template_file_name = 'license_template.txt'
36 if (not filemanagement.fileexist(template_file_name)):
37 print 'File ' + template_file_name + ' not found!'
38 quit()
39 template_file = open(template_file_name,'r')
40 return_string = ''
41 for line in template_file:
42 return_string += line
43 return return_string
44
45 # Just steal the header from the template
46 def fileheaderasarray():
47 template_file_name = 'license_template.txt'
48 if (not filemanagement.fileexist(template_file_name)):
49 print 'File ' + template_file_name + ' not found!'
50 quit()
51 template_file = open(template_file_name,'r')
52 return_value = []
53 for line in template_file:
54 return_value.append(line)
55 return return_value
56
57
58 def findheader(path, file_name):
59 full_file_name = path + file_name
60 if (not filemanagement.fileexist(full_file_name)):
61 print 'File ' + file_name + ' not found!'
62 print 'Unexpected error!'
63 quit()
64 file_handle = open(full_file_name)
65 template_file_content = fileheaderasarray()
66 compare_content = []
67 # load the same number of lines from file as the fileheader
68 for index in range(len(template_file_content)):
69 line = file_handle.readline()
70 if (line == ''):
71 return False
72 compare_content.append(line)
73
74 while (True):
75 found = True
76 for index in range(len(template_file_content)):
77 line1 = template_file_content[index]
78 line2 = compare_content[index]
79 if(line1 != line2):
80 found = False
81 break
82 if (found):
83 return True
84 compare_content = compare_content[1:len(compare_content)]
85 line = file_handle.readline()
86 if (line == ''):
87 return False
88 compare_content.append(line)
89 return False
90
91 # Used to store temporary result before flushing to real file when finished
92 def temporaryfilename(old_file_name):
93 return old_file_name + '.deleteme'
94
95 def updatefile(path, old_file_name):
96 full_old_file_name = path + old_file_name
97 if (not filemanagement.fileexist(full_old_file_name)):
98 print 'File ' + full_old_file_name + ' is not found.'
99 print 'Should not happen! Ever!'
100 quit()
101
102 full_temporary_file_name = path + temporaryfilename(old_file_name)
103
104 # Make sure that the files are closed by putting them out of scope
105 old_file = open(full_old_file_name,'r')
106 temporary_file = open(full_temporary_file_name,'w')
107
108 temporary_file.writelines(fileheaderasstring())
109 remove_whitespaces = True
110 for line in old_file:
111 if (remove_whitespaces and (len(line.split()) == 0)):
112 continue
113 else:
114 remove_whitespaces = False
115 temporary_file.writelines(line)
116 old_file.close()
117 temporary_file.close()
118
119 filemanagement.copyfile(full_old_file_name,full_temporary_file_name)
120 filemanagement.deletefile(full_temporary_file_name)
121
122
123 failed_files = []
124 skipped_files = []
125 for index in range(len(files_to_fix)):
126 if(commit):
127 print (100*index)/len(files_to_fix)
128 path_dir = files_to_fix[index][0]
129 filename = files_to_fix[index][1]
130 is_ignore = False
131 for ignore_names in ignore_these:
132 if(filename == ignore_names):
133 is_ignore = True
134 break
135 if(is_ignore):
136 continue
137
138 # Let the word copyright be our sanity, i.e. make sure there is only one
139 # copy right occurance or report that there will be no change
140 if(filemanagement.findstringinfile(path_dir,filename,'Copyright') or
141 filemanagement.findstringinfile(path_dir,filename,'copyright') or
142 filemanagement.findstringinfile(path_dir,filename,'COPYRIGHT')):
143 if(findheader(path_dir,filename)):
144 skipped_files.append(path_dir + filename)
145 else:
146 failed_files.append(path_dir + filename)
147 continue
148
149 if (not commit):
150 print 'File ' + path_dir + filename + ' will be updated'
151 continue
152 updatefile(path_dir,filename)
153
154 tense = 'will be'
155 if (commit):
156 tense = 'has been'
157 if (len(skipped_files) > 0):
158 print str(len(skipped_files)) + ' file(s) ' + tense + ' skipped since they a lready have the correct header'
159
160 if (len(failed_files) > 0):
161 print 'Following files seem to have an invalid file header:'
162 for line in failed_files:
163 print line
OLDNEW
« no previous file with comments | « no previous file | tools/refactoring/filemanagement.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698