git-svn-id: http://webrtc.googlecode.com/svn/trunk@8 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/tools/refactoring/integratefiles.py b/tools/refactoring/integratefiles.py
new file mode 100644
index 0000000..c5cc892
--- /dev/null
+++ b/tools/refactoring/integratefiles.py
@@ -0,0 +1,100 @@
+#!/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()