mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 19:08:15 +00:00
build: rewrite tools/ scripts to deno (#8247)
This commit rewrites scripts in "tools/" directory to use Deno instead of Python. In return it allows to remove huge number of Python packages in "third_party/".
This commit is contained in:
parent
e7cfd90b0f
commit
791119d4af
21 changed files with 343 additions and 1140 deletions
63
tools/format.js
Executable file
63
tools/format.js
Executable file
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env -S deno run --unstable --allow-write --allow-read --allow-run
|
||||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
||||
import { getPrebuiltToolPath, getSources, join, ROOT_PATH } from "./util.js";
|
||||
|
||||
async function dprint() {
|
||||
const execPath = getPrebuiltToolPath("dprint");
|
||||
console.log("dprint");
|
||||
const p = Deno.run({
|
||||
cmd: [execPath, "fmt"],
|
||||
});
|
||||
const { success } = await p.status();
|
||||
if (!success) {
|
||||
throw new Error("dprint failed");
|
||||
}
|
||||
p.close();
|
||||
}
|
||||
|
||||
async function rustfmt() {
|
||||
const configFile = join(ROOT_PATH, ".rustfmt.toml");
|
||||
const sourceFiles = await getSources(ROOT_PATH, ["*.rs"]);
|
||||
|
||||
if (!sourceFiles.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`rustfmt ${sourceFiles.length} file(s)`);
|
||||
const p = Deno.run({
|
||||
cmd: ["rustfmt", "--config-path=" + configFile, "--", ...sourceFiles],
|
||||
});
|
||||
const { success } = await p.status();
|
||||
if (!success) {
|
||||
throw new Error("rustfmt failed");
|
||||
}
|
||||
p.close();
|
||||
}
|
||||
|
||||
async function main() {
|
||||
await Deno.chdir(ROOT_PATH);
|
||||
await dprint();
|
||||
await rustfmt();
|
||||
|
||||
if (Deno.args.includes("--check")) {
|
||||
const git = Deno.run({
|
||||
cmd: ["git", "status", "-uno", "--porcelain", "--ignore-submodules"],
|
||||
stdout: "piped",
|
||||
});
|
||||
|
||||
const { success } = await git.status();
|
||||
if (!success) {
|
||||
throw new Error("git status failed");
|
||||
}
|
||||
const out = new TextDecoder().decode(await git.output());
|
||||
git.close();
|
||||
|
||||
if (out) {
|
||||
console.log("run tools/format.js");
|
||||
console.log(out);
|
||||
Deno.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
await main();
|
Loading…
Add table
Add a link
Reference in a new issue