60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
#!/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()
|