101 lines
3.3 KiB
Python
101 lines
3.3 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import stringmanipulation
|
||
|
import filemanagement
|
||
|
import p4commands
|
||
|
import sys
|
||
|
|
||
|
extensions = ['.h', '.cpp', '.cc', '.gyp']
|
||
|
|
||
|
ignore_these = ['list_no_stl.h','map_no_stl.h','constructor_magic.h']
|
||
|
|
||
|
exceptions = [
|
||
|
['GIPSRWLock.h','rw_lock.h'],
|
||
|
['GIPSCriticalsection.h','critical_section.h'],
|
||
|
]
|
||
|
|
||
|
if((len(sys.argv) != 4) and (len(sys.argv) != 5)):
|
||
|
print 'parameters are: parent directory extension new extension [--commit]'
|
||
|
quit()
|
||
|
|
||
|
directory = sys.argv[1];
|
||
|
if(not filemanagement.pathexist(directory)):
|
||
|
print 'path ' + directory + ' does not exist'
|
||
|
quit()
|
||
|
|
||
|
old_extension = sys.argv[2]
|
||
|
if(not stringmanipulation.isextension(old_extension)):
|
||
|
print old_extension + ' is not a valid extension'
|
||
|
quit()
|
||
|
|
||
|
new_extension = sys.argv[3]
|
||
|
if(not stringmanipulation.isextension(new_extension)):
|
||
|
print new_extension + ' is not a valid extension'
|
||
|
quit()
|
||
|
|
||
|
if((len(sys.argv) == 5) and (sys.argv[4] != '--commit')):
|
||
|
print 'parameters are: parent directory extension new extension [--commit]'
|
||
|
quit()
|
||
|
|
||
|
commit = False
|
||
|
if(len(sys.argv) == 5):
|
||
|
commit = True
|
||
|
|
||
|
files_to_integrate = filemanagement.listallfilesinfolder(directory,\
|
||
|
old_extension)
|
||
|
|
||
|
if(commit):
|
||
|
p4commands.checkoutallfiles()
|
||
|
for index in range(len(files_to_integrate)):
|
||
|
if(commit):
|
||
|
print (100*index)/len(files_to_integrate)
|
||
|
path_dir = files_to_integrate[index][0]
|
||
|
filename = files_to_integrate[index][1]
|
||
|
is_ignore = False
|
||
|
for ignore_names in ignore_these:
|
||
|
if(filename == ignore_names):
|
||
|
is_ignore = True
|
||
|
break
|
||
|
if(is_ignore):
|
||
|
continue
|
||
|
|
||
|
new_file_name = ''
|
||
|
is_exception = False
|
||
|
for exception_name,exception_name_new in exceptions:
|
||
|
if(filename == exception_name):
|
||
|
is_exception = True
|
||
|
new_file_name = exception_name_new
|
||
|
break
|
||
|
|
||
|
if(not is_exception):
|
||
|
new_file_name = filename
|
||
|
|
||
|
new_file_name = stringmanipulation.removeallprefix(new_file_name,\
|
||
|
'gips')
|
||
|
new_file_name = stringmanipulation.removealloccurances(new_file_name,\
|
||
|
'module')
|
||
|
new_file_name = stringmanipulation.changeextension(new_file_name,\
|
||
|
old_extension,\
|
||
|
new_extension)
|
||
|
new_file_name = stringmanipulation.fixabbreviations( new_file_name )
|
||
|
new_file_name = stringmanipulation.lowercasewithunderscore(new_file_name)
|
||
|
if(not commit):
|
||
|
print 'File ' + filename + ' will be replaced with ' + new_file_name
|
||
|
continue
|
||
|
full_new_file_name = path_dir + new_file_name
|
||
|
full_old_file_name = path_dir + filename
|
||
|
if(full_new_file_name != full_old_file_name):
|
||
|
p4commands.integratefile(full_old_file_name,full_new_file_name)
|
||
|
else:
|
||
|
print 'skipping ' + new_file_name + ' due to no change'
|
||
|
for extension in extensions:
|
||
|
print 'replacing ' + filename
|
||
|
if (extension == ".gyp"):
|
||
|
filemanagement.replacestringinallsubfolders(
|
||
|
filename,new_file_name,extension)
|
||
|
else:
|
||
|
filemanagement.replacestringinallsubfolders(
|
||
|
'\"' + filename + '\"', '\"' + new_file_name + '\"', extension)
|
||
|
if(commit):
|
||
|
p4commands.revertunchangedfiles()
|