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
This commit is contained in:
parent
79a99de8e4
commit
132261446b
161
tools/refactoring/removetrace.py
Normal file
161
tools/refactoring/removetrace.py
Normal file
@ -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)
|
Loading…
x
Reference in New Issue
Block a user