Просмотр исходного кода

Run specific js/python linters

This is so Travis can explicitly only run python or js versions
Matt Robenolt 9 лет назад
Родитель
Сommit
e7a898b639
3 измененных файлов с 35 добавлено и 14 удалено
  1. 12 10
      Makefile
  2. 15 2
      bin/lint
  3. 8 2
      src/sentry/lint/engine.py

+ 12 - 10
Makefile

@@ -108,15 +108,17 @@ test-python-coverage:
 	@echo ""
 	@echo ""
 
 
 
 
-lint:
-	@echo "--> Linting all the things"
-	bin/lint
+lint: lint-python lint-js
+
+lint-python:
+	@echo "--> Linting python"
+	bin/lint --python
 	@echo ""
 	@echo ""
 
 
-# These are just aliases for backwards compat
-# our linter does both now
-lint-python: lint
-lint-js: lint
+lint-js:
+	@echo "--> Linting javascript"
+	bin/lint --js
+	@echo ""
 
 
 coverage: develop
 coverage: develop
 	make test-python-coverage
 	make test-python-coverage
@@ -164,10 +166,10 @@ travis-install-cli: travis-install-python
 .PHONY: travis-install-sqlite travis-install-postgres travis-install-webpack travis-install-js travis-install-cli
 .PHONY: travis-install-sqlite travis-install-postgres travis-install-webpack travis-install-js travis-install-cli
 
 
 # Lint steps
 # Lint steps
-travis-lint-sqlite: lint
-travis-lint-postgres: lint
+travis-lint-sqlite: lint-python
+travis-lint-postgres: lint-python
 travis-lint-webpack: travis-noop
 travis-lint-webpack: travis-noop
-travis-lint-js: lint
+travis-lint-js: lint-js
 travis-lint-cli: travis-noop
 travis-lint-cli: travis-noop
 
 
 .PHONY: travis-lint-sqlite travis-lint-postgres travis-lint-webpack travis-lint-js travis-lint-cli
 .PHONY: travis-lint-sqlite travis-lint-postgres travis-lint-webpack travis-lint-js travis-lint-cli

+ 15 - 2
bin/lint

@@ -5,8 +5,21 @@ import sys
 
 
 from sentry.lint.engine import check_files
 from sentry.lint.engine import check_files
 
 
-file_list = sys.argv[1:]
+offset = 1
+js = True
+py = True
+
+# Allow passing a flag for --js or --python only
+if len(sys.argv) > 1:
+    if sys.argv[1] == '--js':
+        offset = 2
+        py = False
+    elif sys.argv[1] == '--python':
+        offset = 2
+        js = False
+
+file_list = sys.argv[offset:]
 if not file_list:
 if not file_list:
     file_list = None
     file_list = None
 
 
-sys.exit(check_files(file_list))
+sys.exit(check_files(file_list, js=js, py=py))

+ 8 - 2
src/sentry/lint/engine.py

@@ -73,15 +73,21 @@ def js_lint(file_list=None):
     return has_errors
     return has_errors
 
 
 
 
-def check_files(file_list=None):
+def check_files(file_list=None, js=True, py=True):
     # pep8.py uses sys.argv to find setup.cfg
     # pep8.py uses sys.argv to find setup.cfg
     old_sysargv = sys.argv
     old_sysargv = sys.argv
     sys.argv = [
     sys.argv = [
         os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir)
         os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir)
     ]
     ]
 
 
+    linters = []
+    if py:
+        linters.append(py_lint(file_list))
+    if js:
+        linters.append(js_lint(file_list))
+
     try:
     try:
-        if any((py_lint(file_list), js_lint(file_list))):
+        if any(linters):
             return 1
             return 1
         return 0
         return 0
     finally:
     finally: