mirror of
https://github.com/denoland/deno.git
synced 2024-12-30 11:16:38 -05:00
83 lines
2.5 KiB
Python
Executable file
83 lines
2.5 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
|
# Does google-lint on c++ files and ts-lint on typescript files
|
|
|
|
import os
|
|
import sys
|
|
import argparse
|
|
from util import enable_ansi_colors, git_ls_files, root_path, run
|
|
from util import third_party_path, build_mode
|
|
from third_party import python_env
|
|
|
|
|
|
def main():
|
|
enable_ansi_colors()
|
|
os.chdir(root_path)
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--js", help="run eslint", action="store_true")
|
|
parser.add_argument("--py", help="run pylint", action="store_true")
|
|
parser.add_argument("--rs", help="run clippy", action="store_true")
|
|
args = parser.parse_args()
|
|
|
|
did_fmt = False
|
|
if args.js:
|
|
eslint()
|
|
did_fmt = True
|
|
if args.py:
|
|
pylint()
|
|
did_fmt = True
|
|
if args.rs:
|
|
clippy()
|
|
did_fmt = True
|
|
|
|
if not did_fmt:
|
|
eslint()
|
|
pylint()
|
|
clippy()
|
|
|
|
|
|
def eslint():
|
|
print "eslint"
|
|
script = os.path.join(third_party_path, "node_modules", "eslint", "bin",
|
|
"eslint")
|
|
# Find all *directories* in the main repo that contain .ts/.js files.
|
|
source_files = git_ls_files(root_path, [
|
|
"*.js", "*.ts", ":!:std/**/testdata/*", ":!:std/**/node_modules/*",
|
|
":!:cli/compilers/*"
|
|
])
|
|
source_dirs = set([os.path.dirname(f) for f in source_files])
|
|
# Within the source dirs, eslint does its own globbing, taking into account
|
|
# the exclusion rules listed in '.eslintignore'.
|
|
source_globs = ["%s/*.{js,ts}" % d for d in source_dirs]
|
|
# Set NODE_PATH so we don't have to maintain a symlink in root_path.
|
|
env = os.environ.copy()
|
|
env["NODE_PATH"] = os.path.join(root_path, "third_party", "node_modules")
|
|
run(["node", script, "--max-warnings=0", "--"] + source_globs,
|
|
shell=False,
|
|
env=env,
|
|
quiet=True)
|
|
|
|
|
|
def pylint():
|
|
print "pylint"
|
|
script = os.path.join(third_party_path, "python_packages", "pylint")
|
|
rcfile = os.path.join(root_path, "tools", "pylintrc")
|
|
source_files = git_ls_files(root_path, ["*.py"])
|
|
run([sys.executable, script, "--rcfile=" + rcfile, "--"] + source_files,
|
|
env=python_env(),
|
|
shell=False,
|
|
quiet=True)
|
|
|
|
|
|
def clippy():
|
|
print "clippy"
|
|
current_build_mode = build_mode()
|
|
args = ["cargo", "clippy", "--all-targets", "--locked"]
|
|
if current_build_mode != "debug":
|
|
args += ["--release"]
|
|
run(args + ["--", "-D", "clippy::all"], shell=False, quiet=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|