Detect unused goog.requires
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
*.pyc
|
*.pyc
|
||||||
/bin/plovr*.jar
|
/bin/plovr*.jar
|
||||||
/build/gh-pages
|
/build/gh-pages
|
||||||
|
/build/check-requires-timestamp
|
||||||
/build/jsdoc-*-timestamp
|
/build/jsdoc-*-timestamp
|
||||||
/build/lint-spec-timestamp
|
/build/lint-spec-timestamp
|
||||||
/build/lint-src-timestamp
|
/build/lint-src-timestamp
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ def serve_precommit(t):
|
|||||||
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', 'build/ol-all.json')
|
t.run('%(JAVA)s', '-jar', PLOVR_JAR, 'serve', 'build/ol-all.json')
|
||||||
|
|
||||||
|
|
||||||
virtual('lint', 'build/lint-src-timestamp', 'build/lint-spec-timestamp')
|
virtual('lint', 'build/lint-src-timestamp', 'build/lint-spec-timestamp', 'build/check-requires-timestamp')
|
||||||
|
|
||||||
|
|
||||||
@target('build/lint-src-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC, EXAMPLES_SRC)
|
@target('build/lint-src-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC, EXAMPLES_SRC)
|
||||||
@@ -199,6 +199,32 @@ def build_lint_src_timestamp(t):
|
|||||||
t.touch()
|
t.touch()
|
||||||
|
|
||||||
|
|
||||||
|
@target('build/check-requires-timestamp', SRC, INTERNAL_SRC, EXTERNAL_SRC, EXAMPLES_SRC)
|
||||||
|
def build_check_requires_timestamp(t):
|
||||||
|
count = 0
|
||||||
|
for filename in sorted(t.dependencies):
|
||||||
|
if filename == 'build/src/internal/src/requireall.js':
|
||||||
|
continue
|
||||||
|
require_linenos = {}
|
||||||
|
uses = set()
|
||||||
|
lineno = 0
|
||||||
|
for line in open(filename):
|
||||||
|
lineno += 1
|
||||||
|
m = re.match(r'goog.require\(\'(.*)\'\);', line)
|
||||||
|
if m:
|
||||||
|
require_linenos[m.group(1)] = lineno
|
||||||
|
continue
|
||||||
|
for require in require_linenos.iterkeys():
|
||||||
|
if require in line:
|
||||||
|
uses.add(require)
|
||||||
|
for require in sorted(set(require_linenos.keys()) - uses):
|
||||||
|
t.info('%s:%d: unused goog.require %r' % (filename, require_linenos[require], require))
|
||||||
|
count += 1
|
||||||
|
if count:
|
||||||
|
t.error('%d unused goog.requires' % (count,))
|
||||||
|
t.touch()
|
||||||
|
|
||||||
|
|
||||||
@target('build/lint-spec-timestamp', SPEC)
|
@target('build/lint-spec-timestamp', SPEC)
|
||||||
def build_lint_spec_timestamp(t):
|
def build_lint_spec_timestamp(t):
|
||||||
t.run('%(GJSLINT)s', t.newer(SPEC))
|
t.run('%(GJSLINT)s', t.newer(SPEC))
|
||||||
|
|||||||
Reference in New Issue
Block a user