blob: 7a1c458af3fd4d8867d77a3d56f16403545059d4 [file] [log] [blame]
niklase@google.com47bdc462011-05-30 11:42:35 +00001#!/usr/bin/env python
2
3import sys
4import fileinput
5import filemanagement
6import p4commands
7
8# Defaults
9TABSIZE = 4
10
11extensions = ['.h','.cc','.c','.cpp']
12
13ignore_these = ['my_ignore_header.h']
14
15usage = """
16Replaces all TAB characters with %(TABSIZE)d space characters.
17In addition, all trailing space characters are removed.
18usage: trim directory
19""" % vars()
20
21if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
22 sys.stderr.write(usage)
23 sys.exit(2)
24
25directory = sys.argv[1];
26if(not filemanagement.pathexist(directory)):
27 sys.stderr.write(usage)
28 sys.exit(2)
29
30if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
31 sys.stderr.write(usage)
32 sys.exit(2)
33
34commit = False
35if(len(sys.argv) == 3):
36 commit = True
37
38files_to_fix = []
39for extension in extensions:
40 files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\
41 extension))
42
43def main():
44 if (commit):
45 p4commands.checkoutallfiles()
46 for path,file_name in files_to_fix:
47 full_file_name = path + file_name
48 if (not commit):
49 print full_file_name + ' will be edited'
50 continue
51 for line in fileinput.input(full_file_name, inplace=True):
52 line = line.replace('\t',' '*TABSIZE); # replace TABs
53 line = line.rstrip(None) # remove trailing whitespaces
54 print line # modify the file
55 if (commit):
56 p4commands.revertunchangedfiles()
57
58if __name__ == '__main__':
59 main()