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

Unified Diff: third_party/WebKit/Source/devtools/scripts/lint_javascript.py

Issue 2338753003: DevTools: Make eslint mandatory and check node.js/npm modules in presubmit (Closed)
Patch Set: Fix node.py Created 4 years, 2 months 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/scripts/lint_javascript.py
diff --git a/third_party/WebKit/Source/devtools/scripts/lint_javascript.py b/third_party/WebKit/Source/devtools/scripts/lint_javascript.py
index 9b8e77eb1eaddf8fd1a51201ee293e2e2e7ac49b..70a9c890651ff59a0c7cc8fdbf2bd5013c07dbf6 100755
--- a/third_party/WebKit/Source/devtools/scripts/lint_javascript.py
+++ b/third_party/WebKit/Source/devtools/scripts/lint_javascript.py
@@ -4,12 +4,13 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import os
import os.path as path
import re
import subprocess
import sys
+import install_node_deps
+
files_to_lint = None
if len(sys.argv) >= 2:
@@ -48,37 +49,16 @@ def to_platform_path_exact(filepath):
scripts_path = path.dirname(path.abspath(__file__))
devtools_path = path.dirname(scripts_path)
devtools_frontend_path = path.join(devtools_path, "front_end")
-
-
-# Based on http://stackoverflow.com/questions/377017/test-if-executable-exists-in-python.
-def which(program):
- def is_exe(fpath):
- return path.isfile(fpath) and os.access(fpath, os.X_OK)
-
- fpath, fname = path.split(program)
- if fpath:
- if is_exe(program):
- return program
- else:
- for part in os.environ["PATH"].split(os.pathsep):
- part = part.strip("\"")
- exe_file = path.join(part, program)
- if is_exe(exe_file):
- return exe_file
- return None
-
+eslint_path = path.join(devtools_path, "node_modules", ".bin", "eslint")
print("Linting JavaScript with eslint...\n")
def js_lint(files_list=None):
eslint_errors_found = False
-
- eslint_path = which("eslint")
- if not eslint_path:
- print("!! NOTE: Skipping JavaScript linting because eslint is not installed.")
- print("!! npm install -g eslint")
- eslint_errors_found = False # Linting is opt-in for now, so this is a soft failure
+ if not path.isfile(eslint_path):
+ print("Failed to run eslint, run ./scripts/install_node_deps.py to install eslint")
+ eslint_errors_found = True
return eslint_errors_found
if files_list is None:
@@ -87,7 +67,9 @@ def js_lint(files_list=None):
eslintconfig_path = path.join(devtools_path, "front_end/.eslintrc.js")
eslintignore_path = path.join(devtools_path, "front_end/.eslintignore")
+ (node_path, _) = install_node_deps.resolve_node_paths()
exec_command = [
+ node_path,
eslint_path,
"--config", to_platform_path_exact(eslintconfig_path),
"--ignore-path", to_platform_path_exact(eslintignore_path),
@@ -109,5 +91,3 @@ errors_found = js_lint(files_to_lint)
if errors_found:
print("ERRORS DETECTED")
sys.exit(1)
-else:
- print("OK")

Powered by Google App Engine
This is Rietveld 408576698