| Index: third_party/closure_linter/closure_linter/common/simplefileflags.py
|
| diff --git a/third_party/closure_linter/closure_linter/common/simplefileflags.py b/third_party/closure_linter/closure_linter/common/simplefileflags.py
|
| deleted file mode 100755
|
| index 3402bef3a1d36efe94939f209895e88a049725b3..0000000000000000000000000000000000000000
|
| --- a/third_party/closure_linter/closure_linter/common/simplefileflags.py
|
| +++ /dev/null
|
| @@ -1,190 +0,0 @@
|
| -#!/usr/bin/env python
|
| -#
|
| -# Copyright 2008 The Closure Linter Authors. All Rights Reserved.
|
| -#
|
| -# Licensed under the Apache License, Version 2.0 (the "License");
|
| -# you may not use this file except in compliance with the License.
|
| -# You may obtain a copy of the License at
|
| -#
|
| -# http://www.apache.org/licenses/LICENSE-2.0
|
| -#
|
| -# Unless required by applicable law or agreed to in writing, software
|
| -# distributed under the License is distributed on an "AS-IS" BASIS,
|
| -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -# See the License for the specific language governing permissions and
|
| -# limitations under the License.
|
| -
|
| -"""Determines the list of files to be checked from command line arguments."""
|
| -
|
| -__author__ = ('robbyw@google.com (Robert Walker)',
|
| - 'ajp@google.com (Andy Perelson)')
|
| -
|
| -import glob
|
| -import os
|
| -import re
|
| -
|
| -import gflags as flags
|
| -
|
| -
|
| -FLAGS = flags.FLAGS
|
| -
|
| -flags.DEFINE_multistring(
|
| - 'recurse',
|
| - None,
|
| - 'Recurse in to the subdirectories of the given path',
|
| - short_name='r')
|
| -flags.DEFINE_list(
|
| - 'exclude_directories',
|
| - ('_demos'),
|
| - 'Exclude the specified directories (only applicable along with -r or '
|
| - '--presubmit)',
|
| - short_name='e')
|
| -flags.DEFINE_list(
|
| - 'exclude_files',
|
| - ('deps.js'),
|
| - 'Exclude the specified files',
|
| - short_name='x')
|
| -
|
| -
|
| -def MatchesSuffixes(filename, suffixes):
|
| - """Returns whether the given filename matches one of the given suffixes.
|
| -
|
| - Args:
|
| - filename: Filename to check.
|
| - suffixes: Sequence of suffixes to check.
|
| -
|
| - Returns:
|
| - Whether the given filename matches one of the given suffixes.
|
| - """
|
| - suffix = filename[filename.rfind('.'):]
|
| - return suffix in suffixes
|
| -
|
| -
|
| -def _GetUserSpecifiedFiles(argv, suffixes):
|
| - """Returns files to be linted, specified directly on the command line.
|
| -
|
| - Can handle the '*' wildcard in filenames, but no other wildcards.
|
| -
|
| - Args:
|
| - argv: Sequence of command line arguments. The second and following arguments
|
| - are assumed to be files that should be linted.
|
| - suffixes: Expected suffixes for the file type being checked.
|
| -
|
| - Returns:
|
| - A sequence of files to be linted.
|
| - """
|
| - files = argv[1:] or []
|
| - all_files = []
|
| - lint_files = []
|
| -
|
| - # Perform any necessary globs.
|
| - for f in files:
|
| - if f.find('*') != -1:
|
| - for result in glob.glob(f):
|
| - all_files.append(result)
|
| - else:
|
| - all_files.append(f)
|
| -
|
| - for f in all_files:
|
| - if MatchesSuffixes(f, suffixes):
|
| - lint_files.append(f)
|
| - return lint_files
|
| -
|
| -
|
| -def _GetRecursiveFiles(suffixes):
|
| - """Returns files to be checked specified by the --recurse flag.
|
| -
|
| - Args:
|
| - suffixes: Expected suffixes for the file type being checked.
|
| -
|
| - Returns:
|
| - A list of files to be checked.
|
| - """
|
| - lint_files = []
|
| - # Perform any request recursion
|
| - if FLAGS.recurse:
|
| - for start in FLAGS.recurse:
|
| - for root, subdirs, files in os.walk(start):
|
| - for f in files:
|
| - if MatchesSuffixes(f, suffixes):
|
| - lint_files.append(os.path.join(root, f))
|
| - return lint_files
|
| -
|
| -
|
| -def GetAllSpecifiedFiles(argv, suffixes):
|
| - """Returns all files specified by the user on the commandline.
|
| -
|
| - Args:
|
| - argv: Sequence of command line arguments. The second and following arguments
|
| - are assumed to be files that should be linted.
|
| - suffixes: Expected suffixes for the file type
|
| -
|
| - Returns:
|
| - A list of all files specified directly or indirectly (via flags) on the
|
| - command line by the user.
|
| - """
|
| - files = _GetUserSpecifiedFiles(argv, suffixes)
|
| -
|
| - if FLAGS.recurse:
|
| - files += _GetRecursiveFiles(suffixes)
|
| -
|
| - return FilterFiles(files)
|
| -
|
| -
|
| -def FilterFiles(files):
|
| - """Filters the list of files to be linted be removing any excluded files.
|
| -
|
| - Filters out files excluded using --exclude_files and --exclude_directories.
|
| -
|
| - Args:
|
| - files: Sequence of files that needs filtering.
|
| -
|
| - Returns:
|
| - Filtered list of files to be linted.
|
| - """
|
| - num_files = len(files)
|
| -
|
| - ignore_dirs_regexs = []
|
| - for ignore in FLAGS.exclude_directories:
|
| - ignore_dirs_regexs.append(re.compile(r'(^|[\\/])%s[\\/]' % ignore))
|
| -
|
| - result_files = []
|
| - for f in files:
|
| - add_file = True
|
| - for exclude in FLAGS.exclude_files:
|
| - if f.endswith('/' + exclude) or f == exclude:
|
| - add_file = False
|
| - break
|
| - for ignore in ignore_dirs_regexs:
|
| - if ignore.search(f):
|
| - # Break out of ignore loop so we don't add to
|
| - # filtered files.
|
| - add_file = False
|
| - break
|
| - if add_file:
|
| - # Convert everything to absolute paths so we can easily remove duplicates
|
| - # using a set.
|
| - result_files.append(os.path.abspath(f))
|
| -
|
| - skipped = num_files - len(result_files)
|
| - if skipped:
|
| - print 'Skipping %d file(s).' % skipped
|
| -
|
| - return set(result_files)
|
| -
|
| -
|
| -def GetFileList(argv, file_type, suffixes):
|
| - """Parse the flags and return the list of files to check.
|
| -
|
| - Args:
|
| - argv: Sequence of command line arguments.
|
| - suffixes: Sequence of acceptable suffixes for the file type.
|
| -
|
| - Returns:
|
| - The list of files to check.
|
| - """
|
| - return sorted(GetAllSpecifiedFiles(argv, suffixes))
|
| -
|
| -
|
| -def IsEmptyArgumentList(argv):
|
| - return not (len(argv[1:]) or FLAGS.recurse)
|
|
|