diff options
author | Luca Casonato <hello@lcas.dev> | 2023-09-26 13:41:07 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-26 04:41:07 +0000 |
commit | 6f87962a77f3dd409c71ff490fd5f36023b7b700 (patch) | |
tree | bc515dfb5b7257d037c1bfea32ab6daaf6fcc122 /tools/lint.js | |
parent | 939279aa1075aab9b647e9a149df31da346fa7f2 (diff) |
chore: clean up lint script (#20682)
Right now, if one of the linters fails, the all other ones continue
running in the background. This fixes this by waiting until all linters
are done before settling.
Diffstat (limited to 'tools/lint.js')
-rwxr-xr-x | tools/lint.js | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/tools/lint.js b/tools/lint.js index 78fc7a84c..396a68767 100755 --- a/tools/lint.js +++ b/tools/lint.js @@ -3,26 +3,34 @@ import { buildMode, getPrebuilt, getSources, join, ROOT_PATH } from "./util.js"; import { checkCopyright } from "./copyright_checker.js"; -let didLint = false; +const promises = []; -if (Deno.args.includes("--js")) { - await dlint(); - await dlintPreferPrimordials(); - didLint = true; +let js = Deno.args.includes("--js"); +let rs = Deno.args.includes("--rs"); +if (!js && !rs) { + js = true; + rs = true; } -if (Deno.args.includes("--rs")) { - await clippy(); - didLint = true; +if (js) { + promises.push(dlint()); + promises.push(dlintPreferPrimordials()); } -if (!didLint) { - await Promise.all([ - dlint(), - dlintPreferPrimordials(), - checkCopyright(), - clippy(), - ]); +if (rs) { + promises.push(clippy()); +} + +if (!js && !rs) { + promises.push(checkCopyright()); +} + +const results = await Promise.allSettled(promises); +for (const result of results) { + if (result.status === "rejected") { + console.error(result.reason); + Deno.exit(1); + } } async function dlint() { |