clint: add support for --stdin-filename

This commit is contained in:
Daniel Hahler 2018-10-05 16:16:09 +02:00
parent 2351b931dd
commit 1e7eb20c91

View File

@ -66,7 +66,7 @@ _USAGE = """
Syntax: clint.py [--verbose=#] [--output=vs7] [--filter=-x,+y,...] Syntax: clint.py [--verbose=#] [--output=vs7] [--filter=-x,+y,...]
[--counting=total|toplevel|detailed] [--root=subdir] [--counting=total|toplevel|detailed] [--root=subdir]
[--linelength=digits] [--record-errors=file] [--linelength=digits] [--record-errors=file]
[--suppress-errors=file] [--suppress-errors=file] [--stdin-filename=filename]
<file> [file] ... <file> [file] ...
The style guidelines this tries to follow are those in The style guidelines this tries to follow are those in
@ -168,6 +168,9 @@ Syntax: clint.py [--verbose=#] [--output=vs7] [--filter=-x,+y,...]
suppress-errors=file suppress-errors=file
Errors listed in the given file will not be reported. Errors listed in the given file will not be reported.
stdin-filename=filename
Use specified filename when reading from stdin (file "-").
""" """
# We categorize each error message we print. Here are the categories. # We categorize each error message we print. Here are the categories.
@ -3461,6 +3464,8 @@ def ProcessFile(filename, vlevel, extra_check_functions=[]):
if sys.version_info < (3, 0): if sys.version_info < (3, 0):
stdin = stdin.decode('utf8') stdin = stdin.decode('utf8')
lines = stdin.split('\n') lines = stdin.split('\n')
if _cpplint_state.stdin_filename is not None:
filename = _cpplint_state.stdin_filename
else: else:
lines = codecs.open( lines = codecs.open(
filename, 'r', 'utf8', 'replace').read().split('\n') filename, 'r', 'utf8', 'replace').read().split('\n')
@ -3541,7 +3546,9 @@ def ParseArguments(args):
'linelength=', 'linelength=',
'extensions=', 'extensions=',
'record-errors=', 'record-errors=',
'suppress-errors=']) 'suppress-errors=',
'stdin-filename=',
])
except getopt.GetoptError: except getopt.GetoptError:
PrintUsage('Invalid arguments.') PrintUsage('Invalid arguments.')
@ -3551,6 +3558,7 @@ def ParseArguments(args):
counting_style = '' counting_style = ''
record_errors_file = None record_errors_file = None
suppress_errors_file = None suppress_errors_file = None
stdin_filename = None
for (opt, val) in opts: for (opt, val) in opts:
if opt == '--help': if opt == '--help':
@ -3587,6 +3595,8 @@ def ParseArguments(args):
record_errors_file = val record_errors_file = val
elif opt == '--suppress-errors': elif opt == '--suppress-errors':
suppress_errors_file = val suppress_errors_file = val
elif opt == '--stdin-filename':
stdin_filename = val
if not filenames: if not filenames:
PrintUsage('No files were specified.') PrintUsage('No files were specified.')
@ -3597,6 +3607,7 @@ def ParseArguments(args):
_SetCountingStyle(counting_style) _SetCountingStyle(counting_style)
_SuppressErrorsFrom(suppress_errors_file) _SuppressErrorsFrom(suppress_errors_file)
_RecordErrorsTo(record_errors_file) _RecordErrorsTo(record_errors_file)
_cpplint_state.stdin_filename = stdin_filename
return filenames return filenames