-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathentry.init.ts
64 lines (53 loc) · 1.59 KB
/
entry.init.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
import path from "node:path";
import { clearCacheFolder, tryMakeCacheFolder } from "./cache";
import { log, ansiFormat, error, verbose, fmt1$ } from "./cli.output";
import { registerFlag, parseCommandLine } from "./cli.parse_flags";
import { loadConfig, loadConfigFile } from "./config";
function splash() {
log("Testing via " + ansiFormat("Tesuto", "cyan", "black", "normal"));
}
function initGlobalThis() {
globalThis.cmdConfig = {
verboseMode: false,
root: process.cwd(),
bail: 0,
only: false,
};
globalThis.absRoot = "<NOT_DEFINED>";
}
function registerCliFlags() {
registerFlag("verbose", "boolean", () => {
globalThis.cmdConfig.verboseMode = true;
});
registerFlag("root", "string", (arg) => {
globalThis.cmdConfig.root = arg;
});
registerFlag("bail", "integer", (arg) => {
globalThis.cmdConfig.bail = arg;
});
registerFlag("clear-cache", "boolean", (arg) => {
if (arg) clearCacheFolder();
});
}
function chroot() {
try {
process.chdir(globalThis.cmdConfig.root);
} catch (e) {
error("Invalid root directory.");
process.exit(1);
}
absRoot = path.resolve(".");
}
async function init() {
initGlobalThis();
registerCliFlags();
let testParams = parseCommandLine(process.argv.slice(2));
loadConfig(await loadConfigFile());
chroot();
splash();
verbose("Verbose mode enabled, and I'll be more chatty :)");
verbose(`Root directory set to ${fmt1$(cmdConfig.root)}.`);
tryMakeCacheFolder();
return testParams;
}
export { init };