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()
 |