summaryrefslogtreecommitdiff
path: root/tools/format.js
blob: b13159613a933d5668c3edf7d8030099aa968b8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env -S deno run --unstable --allow-write --allow-read --allow-run
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
import { getPrebuiltToolPath, join, ROOT_PATH } from "./util.js";

async function dprint() {
  const configFile = join(ROOT_PATH, ".dprint.json");
  const execPath = getPrebuiltToolPath("dprint");
  const cmd = new Deno.Command(execPath, {
    args: ["fmt", "--config=" + configFile],
    stdout: "inherit",
    stderr: "inherit",
  });

  const { code } = await cmd.output();

  if (code > 0) {
    throw new Error("dprint failed");
  }
}

async function main() {
  await Deno.chdir(ROOT_PATH);
  await dprint();

  if (Deno.args.includes("--check")) {
    const cmd = new Deno.Command("git", {
      args: ["status", "-uno", "--porcelain", "--ignore-submodules"],
      stderr: "inherit",
    });

    const { code, stdout } = await cmd.output();

    if (code > 0) {
      throw new Error("git status failed");
    }
    const out = new TextDecoder().decode(stdout);

    if (out) {
      console.log("run tools/format.js");
      console.log(out);
      Deno.exit(1);
    }
  }
}

await main();