blob: c5cc892095cc321f7698a7acdbda2b525a1df1c7 [file] [log] [blame]
niklase@google.com47bdc462011-05-30 11:42:35 +00001#!/usr/bin/env python
2
3import stringmanipulation
4import filemanagement
5import p4commands
6import sys
7
8extensions = ['.h', '.cpp', '.cc', '.gyp']
9
10ignore_these = ['list_no_stl.h','map_no_stl.h','constructor_magic.h']
11
12exceptions = [
13['GIPSRWLock.h','rw_lock.h'],
14['GIPSCriticalsection.h','critical_section.h'],
15]
16
17if((len(sys.argv) != 4) and (len(sys.argv) != 5)):
18 print 'parameters are: parent directory extension new extension [--commit]'
19 quit()
20
21directory = sys.argv[1];
22if(not filemanagement.pathexist(directory)):
23 print 'path ' + directory + ' does not exist'
24 quit()
25
26old_extension = sys.argv[2]
27if(not stringmanipulation.isextension(old_extension)):
28 print old_extension + ' is not a valid extension'
29 quit()
30
31new_extension = sys.argv[3]
32if(not stringmanipulation.isextension(new_extension)):
33 print new_extension + ' is not a valid extension'
34 quit()
35
36if((len(sys.argv) == 5) and (sys.argv[4] != '--commit')):
37 print 'parameters are: parent directory extension new extension [--commit]'
38 quit()
39
40commit = False
41if(len(sys.argv) == 5):
42 commit = True
43
44files_to_integrate = filemanagement.listallfilesinfolder(directory,\
45 old_extension)
46
47if(commit):
48 p4commands.checkoutallfiles()
49for index in range(len(files_to_integrate)):
50 if(commit):
51 print (100*index)/len(files_to_integrate)
52 path_dir = files_to_integrate[index][0]
53 filename = files_to_integrate[index][1]
54 is_ignore = False
55 for ignore_names in ignore_these:
56 if(filename == ignore_names):
57 is_ignore = True
58 break
59 if(is_ignore):
60 continue
61
62 new_file_name = ''
63 is_exception = False
64 for exception_name,exception_name_new in exceptions:
65 if(filename == exception_name):
66 is_exception = True
67 new_file_name = exception_name_new
68 break
69
70 if(not is_exception):
71 new_file_name = filename
72
73 new_file_name = stringmanipulation.removeallprefix(new_file_name,\
74 'gips')
75 new_file_name = stringmanipulation.removealloccurances(new_file_name,\
76 'module')
77 new_file_name = stringmanipulation.changeextension(new_file_name,\
78 old_extension,\
79 new_extension)
80 new_file_name = stringmanipulation.fixabbreviations( new_file_name )
81 new_file_name = stringmanipulation.lowercasewithunderscore(new_file_name)
82 if(not commit):
83 print 'File ' + filename + ' will be replaced with ' + new_file_name
84 continue
85 full_new_file_name = path_dir + new_file_name
86 full_old_file_name = path_dir + filename
87 if(full_new_file_name != full_old_file_name):
88 p4commands.integratefile(full_old_file_name,full_new_file_name)
89 else:
90 print 'skipping ' + new_file_name + ' due to no change'
91 for extension in extensions:
92 print 'replacing ' + filename
93 if (extension == ".gyp"):
94 filemanagement.replacestringinallsubfolders(
95 filename,new_file_name,extension)
96 else:
97 filemanagement.replacestringinallsubfolders(
98 '\"' + filename + '\"', '\"' + new_file_name + '\"', extension)
99if(commit):
100 p4commands.revertunchangedfiles()