def ParseArguments()

in cpplint.py [0:0]


def ParseArguments(args):
    """Parses the command line arguments.

  This may set the output format and verbosity level as side-effects.

  Args:
    args: The command line arguments:

  Returns:
    The list of filenames to lint.
  """
    try:
        (opts, filenames) = getopt.getopt(args, '', ['help', 'output=', 'verbose=',
                                                     'counting=',
                                                     'filter=',
                                                     'root=',
                                                     'linelength=',
                                                     'extensions=',
                                                     'headers=',
                                                     'quiet'])
    except getopt.GetoptError:
        PrintUsage('Invalid arguments.')

    verbosity = _VerboseLevel()
    output_format = _OutputFormat()
    filters = ''
    quiet = _Quiet()
    counting_style = ''

    for (opt, val) in opts:
        if opt == '--help':
            PrintUsage(None)
        elif opt == '--output':
            if val not in ('emacs', 'vs7', 'eclipse'):
                PrintUsage('The only allowed output formats are emacs, vs7 and eclipse.')
            output_format = val
        elif opt == '--quiet':
            quiet = True
        elif opt == '--verbose':
            verbosity = int(val)
        elif opt == '--filter':
            filters = val
            if not filters:
                PrintCategories()
        elif opt == '--counting':
            if val not in ('total', 'toplevel', 'detailed'):
                PrintUsage('Valid counting options are total, toplevel, and detailed')
            counting_style = val
        elif opt == '--root':
            global _root
            _root = val
        elif opt == '--linelength':
            global _line_length
            try:
                _line_length = int(val)
            except ValueError:
                PrintUsage('Line length must be digits.')
        elif opt == '--extensions':
            global _valid_extensions
            try:
                _valid_extensions = set(val.split(','))
            except ValueError:
                PrintUsage('Extensions must be comma separated list.')
        elif opt == '--headers':
            ProcessHppHeadersOption(val)

    if not filenames:
        PrintUsage('No files were specified.')

    _SetOutputFormat(output_format)
    _SetQuiet(quiet)
    _SetVerboseLevel(verbosity)
    _SetFilters(filters)
    _SetCountingStyle(counting_style)

    return filenames