Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: chrome/tools/inconsistent-eol.py

Issue 8680018: Fix python scripts in src/chrome/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/env python
2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Find and fix files with inconsistent line endings. 6 """Find and fix files with inconsistent line endings.
7 7
8 This script requires 'dos2unix.exe' and 'unix2dos.exe' from Cygwin; they 8 This script requires 'dos2unix.exe' and 'unix2dos.exe' from Cygwin; they
9 must be in the user's PATH. 9 must be in the user's PATH.
10 10
11 Arg: Either one or more files to examine, or (with --file-list) one or more 11 Arg: Either one or more files to examine, or (with --file-list) one or more
(...skipping 19 matching lines...) Expand all
31 """Local exception class.""" 31 """Local exception class."""
32 pass 32 pass
33 33
34 34
35 def CountChars(text, str): 35 def CountChars(text, str):
36 """Count the number of instances of the given string in the text.""" 36 """Count the number of instances of the given string in the text."""
37 split = text.split(str) 37 split = text.split(str)
38 logging.debug(len(split) - 1) 38 logging.debug(len(split) - 1)
39 return len(split) - 1 39 return len(split) - 1
40 40
41
41 def PrevailingEOLName(crlf, cr, lf): 42 def PrevailingEOLName(crlf, cr, lf):
42 """Describe the most common line ending. 43 """Describe the most common line ending.
43 44
44 Args: 45 Args:
45 crlf: How many CRLF (\r\n) sequences are in the file. 46 crlf: How many CRLF (\r\n) sequences are in the file.
46 cr: How many CR (\r) characters are in the file, excluding CRLF sequences. 47 cr: How many CR (\r) characters are in the file, excluding CRLF sequences.
47 lf: How many LF (\n) characters are in the file, excluding CRLF sequences. 48 lf: How many LF (\n) characters are in the file, excluding CRLF sequences.
48 49
49 Returns: 50 Returns:
50 A string describing the most common of the three line endings. 51 A string describing the most common of the three line endings.
51 """ 52 """
52 most = max(crlf, cr, lf) 53 most = max(crlf, cr, lf)
53 if most == cr: 54 if most == cr:
54 return 'cr' 55 return 'cr'
55 if most == crlf: 56 if most == crlf:
56 return 'crlf' 57 return 'crlf'
57 return 'lf' 58 return 'lf'
58 59
60
59 def FixEndings(file, crlf, cr, lf): 61 def FixEndings(file, crlf, cr, lf):
60 """Change the file's line endings to CRLF or LF, whichever is more common.""" 62 """Change the file's line endings to CRLF or LF, whichever is more common."""
61 most = max(crlf, cr, lf) 63 most = max(crlf, cr, lf)
62 if most == crlf: 64 if most == crlf:
63 result = subprocess.call('unix2dos.exe %s' % file, shell=True) 65 result = subprocess.call('unix2dos.exe %s' % file, shell=True)
64 if result: 66 if result:
65 raise Error('Error running unix2dos.exe %s' % file) 67 raise Error('Error running unix2dos.exe %s' % file)
66 else: 68 else:
67 result = subprocess.call('dos2unix.exe %s' % file, shell=True) 69 result = subprocess.call('dos2unix.exe %s' % file, shell=True)
68 if result: 70 if result:
(...skipping 23 matching lines...) Expand all
92 print '%s: forcing to LF' % filename 94 print '%s: forcing to LF' % filename
93 # Fudge the counts to force switching to LF. 95 # Fudge the counts to force switching to LF.
94 FixEndings(filename, 0, 0, 1) 96 FixEndings(filename, 0, 0, 1)
95 else: 97 else:
96 if ((crlf > 0 and cr > 0) or 98 if ((crlf > 0 and cr > 0) or
97 (crlf > 0 and lf > 0) or 99 (crlf > 0 and lf > 0) or
98 ( lf > 0 and cr > 0)): 100 ( lf > 0 and cr > 0)):
99 print '%s: mostly %s' % (filename, PrevailingEOLName(crlf, cr, lf)) 101 print '%s: mostly %s' % (filename, PrevailingEOLName(crlf, cr, lf))
100 FixEndings(filename, crlf, cr, lf) 102 FixEndings(filename, crlf, cr, lf)
101 103
102 def main(options, args): 104
105 def process(options, args):
103 """Process the files.""" 106 """Process the files."""
104 if not args or len(args) < 1: 107 if not args or len(args) < 1:
105 raise Error('No files given.') 108 raise Error('No files given.')
106 109
107 if options.file_list: 110 if options.file_list:
108 for arg in args: 111 for arg in args:
109 filelist = open(arg, 'r').readlines() 112 filelist = open(arg, 'r').readlines()
110 ProcessFiles(filelist) 113 ProcessFiles(filelist)
111 else: 114 else:
112 filelist = args 115 filelist = args
113 ProcessFiles(filelist) 116 ProcessFiles(filelist)
117 return 0
114 118
115 if '__main__' == __name__: 119
120 def main():
116 if DEBUGGING: 121 if DEBUGGING:
117 debug_level = logging.DEBUG 122 debug_level = logging.DEBUG
118 else: 123 else:
119 debug_level = logging.INFO 124 debug_level = logging.INFO
120 logging.basicConfig(level=debug_level, 125 logging.basicConfig(level=debug_level,
121 format='%(asctime)s %(levelname)-7s: %(message)s', 126 format='%(asctime)s %(levelname)-7s: %(message)s',
122 datefmt='%H:%M:%S') 127 datefmt='%H:%M:%S')
123 128
124 option_parser = optparse.OptionParser() 129 option_parser = optparse.OptionParser()
125 option_parser.add_option("", "--file-list", action="store_true", 130 option_parser.add_option("", "--file-list", action="store_true",
126 default=False, 131 default=False,
127 help="Treat the arguments as files containing " 132 help="Treat the arguments as files containing "
128 "lists of files to examine, rather than as " 133 "lists of files to examine, rather than as "
129 "the files to be checked.") 134 "the files to be checked.")
130 option_parser.add_option("", "--force-lf", action="store_true", 135 option_parser.add_option("", "--force-lf", action="store_true",
131 default=False, 136 default=False,
132 help="Force any files with CRLF to LF instead.") 137 help="Force any files with CRLF to LF instead.")
133 options, args = option_parser.parse_args() 138 options, args = option_parser.parse_args()
139 return process(options, args)
134 140
135 sys.exit(main(options, args)) 141
142 if '__main__' == __name__:
143 sys.exit(main())
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698