| #!/usr/bin/env python |
| |
| import sys |
| import fileinput |
| import filemanagement |
| import p4commands |
| |
| # Defaults |
| TABSIZE = 4 |
| |
| extensions = ['.h','.cc','.c','.cpp'] |
| |
| ignore_these = ['my_ignore_header.h'] |
| |
| usage = """ |
| Replaces all TAB characters with %(TABSIZE)d space characters. |
| In addition, all trailing space characters are removed. |
| usage: trim directory |
| """ % vars() |
| |
| if((len(sys.argv) != 2) and (len(sys.argv) != 3)): |
| sys.stderr.write(usage) |
| sys.exit(2) |
| |
| directory = sys.argv[1]; |
| if(not filemanagement.pathexist(directory)): |
| sys.stderr.write(usage) |
| sys.exit(2) |
| |
| if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')): |
| sys.stderr.write(usage) |
| sys.exit(2) |
| |
| commit = False |
| if(len(sys.argv) == 3): |
| commit = True |
| |
| files_to_fix = [] |
| for extension in extensions: |
| files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\ |
| extension)) |
| |
| def main(): |
| if (commit): |
| p4commands.checkoutallfiles() |
| for path,file_name in files_to_fix: |
| full_file_name = path + file_name |
| if (not commit): |
| print full_file_name + ' will be edited' |
| continue |
| for line in fileinput.input(full_file_name, inplace=True): |
| line = line.replace('\t',' '*TABSIZE); # replace TABs |
| line = line.rstrip(None) # remove trailing whitespaces |
| print line # modify the file |
| if (commit): |
| p4commands.revertunchangedfiles() |
| |
| if __name__ == '__main__': |
| main() |