#!/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()