-
Notifications
You must be signed in to change notification settings - Fork 0
/
dev.ts
68 lines (60 loc) Β· 1.54 KB
/
dev.ts
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { Command } from "commander";
const program = new Command();
const getCurrentYear = () => new Date().getFullYear().toString();
program.name("advent").version("12.25.0");
program
.command("aoc")
.alias("advent-of-code")
.description("Run a specific Advent of Code file for the given year")
.option(
"-y, --year <year>",
"Specify the year (default: current year)",
getCurrentYear()
)
.argument("<file>", "Specify the file number to execute (e.g., 1, 2, 03, 04)")
.action((file, options) => {
const year = options.year || getCurrentYear();
Bun.spawnSync(
[
"pnpm",
"bun",
"--watch",
"run",
`${year}/advent-of-code/${String(file).padStart(2, "0")}.ts`,
],
{
stdout: "inherit",
stderr: "inherit",
}
);
});
program
.command("aot")
.alias("advent-of-typescript")
.description(
"Run TypeScript type checks for a specific Advent of TypeScript file."
)
.option(
"-y, --year <year>",
"Specify the year (default: current year)",
getCurrentYear()
)
.argument("<file>", "Specify the file number to check (e.g., 1, 2, 03, 04)")
.action((file, options) => {
const year = options.year || getCurrentYear();
Bun.spawnSync(
[
"pnpm",
"tsc",
"--noEmit",
"--watch",
"--skipLibCheck",
`${year}/advent-of-typescript/${String(file).padStart(2, "0")}.ts`,
],
{
stdout: "inherit",
stderr: "inherit",
}
);
});
program.parse(process.argv);