Added a hack, python script for removing the logging of a trace depending on a keyword. Current implementation requires the keyword to be typed in the file; just change the 'trace_remove_key_word' from kTraceModuleCall to whatever. Hack should be fine since it works and it's a tool that has only limited utility.

Adding to repository to make it easy to access and for reference if someone wants to make a similar hack or write a better one.
Review URL: https://webrtc-codereview.appspot.com/395002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1687 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/tools/refactoring/removetrace.py b/tools/refactoring/removetrace.py
new file mode 100644
index 0000000..43c622d
--- /dev/null
+++ b/tools/refactoring/removetrace.py
@@ -0,0 +1,161 @@
+# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS.  All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+# NOTE: This is a hack which disobeys a number of conventions and best
+# practices. It's here just to be easily shared. If it's to remain in the
+# repository it should be refactored.
+
+#!/usr/bin/env python
+
+import stringmanipulation
+import filemanagement
+import sys
+
+trace_remove_key_word = 'kTraceModuleCall'
+
+if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
+    print 'parameters are: parent directory [--commit]'
+    quit()
+
+if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
+    print 'parameters are: parent directory [--commit]'
+    quit()
+
+commit = (len(sys.argv) == 3)
+
+directory = sys.argv[1];
+occurances = []
+
+trace_identifier = 'WEBRTC_TRACE('
+extensions = ['.h','.cc','.c','.cpp']
+files_to_fix = []
+for extension in extensions:
+    files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\
+                                                       extension))
+
+# This function identifies the begining of a trace statement
+def istracebegining(line):
+    return stringmanipulation.issubstring(line, trace_identifier) != -1
+
+def endofstatement(line):
+    return stringmanipulation.issubstring(line, ';') != -1
+
+def removekeywordfound(line):
+    return stringmanipulation.issubstring(line, trace_remove_key_word) != -1
+
+# Used to store temporary result before flushing to real file when finished
+def temporaryfilename():
+    return 'deleteme.txt'
+
+
+def find_occurances(path, file_name):
+    full_filename = path + file_name
+    file_handle = open(full_filename,'r')
+    line_is_trace = False
+    last_trace_line = -1
+    for line_nr, line in enumerate(file_handle):
+        if(istracebegining(line)):
+            line_is_trace = True;
+            last_trace_line = line_nr
+
+        if(line_is_trace):
+            if(removekeywordfound(line)):
+                occurances.append(last_trace_line)
+
+        if(endofstatement(line)):
+            line_is_trace = False;
+
+def remove_occurances(path, file_name):
+    full_file_name = path + file_name
+    if (not filemanagement.fileexist(full_file_name)):
+        print 'File ' + full_file_name + ' is not found.'
+        print 'Should not happen! Ever!'
+        quit()
+
+    full_temporary_file_name = path + temporaryfilename()
+    temporary_file = open(full_temporary_file_name,'w')
+    original_file = open(full_file_name,'r')
+    next_occurance_id = 0;
+    removing_statement = False
+    if(len(occurances) == next_occurance_id):
+        return
+    next_occurance = occurances[next_occurance_id]
+    next_occurance_id += 1
+    for line_nr, line in enumerate(original_file):
+        if(line_nr == next_occurance):
+            removing_statement = True
+            if(len(occurances) == next_occurance_id):
+                next_occurance_id = -1
+            else:
+                next_occurance = occurances[next_occurance_id]
+                next_occurance_id += 1
+
+        if (not removing_statement):
+            temporary_file.writelines(line)
+
+        if(endofstatement(line)):
+            removing_statement = False;
+
+    temporary_file.close()
+    original_file.close()
+    filemanagement.copyfile(full_file_name,full_temporary_file_name)
+    filemanagement.deletefile(full_temporary_file_name)
+
+def nextoccurance():
+    if (len(occurances) == 0):
+        return -1
+    return_value = occurances[0]
+    occurances = occurances[1:len(occurances)]
+    return return_value
+
+def would_be_removed_occurances(path, file_name):
+    full_file_name = path + file_name
+    if (not filemanagement.fileexist(full_file_name)):
+        print 'File ' + full_file_name + ' is not found.'
+        print 'Should not happen! Ever!'
+        quit()
+
+    original_file = open(full_file_name,'r')
+    removing_statement = False
+    next_occurance_id = 0;
+    if(len(occurances) == next_occurance_id):
+        return
+    next_occurance = occurances[next_occurance_id]
+    next_occurance_id += 1
+    for line_nr, line in enumerate(original_file):
+        if(line_nr == next_occurance):
+            removing_statement = True
+            if(len(occurances) == next_occurance_id):
+                return
+            next_occurance = occurances[next_occurance_id]
+            next_occurance_id += 1
+
+        if (removing_statement):
+            print line_nr
+
+        if(endofstatement(line)):
+            removing_statement = False;
+            if(next_occurance == -1):
+                break
+    original_file.close()
+
+for index in range(len(files_to_fix)):
+    if(commit):
+        print (100*index)/len(files_to_fix)
+
+    path_dir = files_to_fix[index][0]
+    filename = files_to_fix[index][1]
+
+    #print path_dir + filename
+    occurances = []
+    find_occurances(path_dir, filename)
+
+    if(not commit):
+        would_be_removed_occurances(path_dir, filename)
+        continue
+    remove_occurances(path_dir, filename)