fix(tools/lint): don't exceed max command line length on windows (#6804)

This commit is contained in:
木杉 2020-07-21 22:47:55 +08:00 committed by GitHub
parent 2460689b1a
commit f34a441a7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -71,15 +71,24 @@ def eslint():
":!:cli/tests/lint/**",
])
if source_files:
print_command("eslint", source_files)
# 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_files,
shell=False,
env=env,
quiet=True)
max_command_len = 30000
pre_command = ["node", script, "--max-warnings=0", "--"]
chunks = [[]]
cmd_len = len(" ".join(pre_command))
for f in source_files:
if cmd_len + len(f) > max_command_len:
chunks.append([f])
cmd_len = len(" ".join(pre_command))
else:
chunks[-1].append(f)
cmd_len = cmd_len + len(f) + 1
for c in chunks:
print_command("eslint", c)
# 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(pre_command + c, shell=False, env=env, quiet=True)
def pylint():