-
Notifications
You must be signed in to change notification settings - Fork 340
/
extract-packs.ts
43 lines (40 loc) · 1.48 KB
/
extract-packs.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
import fs from "fs";
import process from "process";
import yargs, { Argv } from "yargs";
import { PackExtractor, ExtractArgs } from "./lib/extractor.ts";
const argv = yargs(process.argv.slice(2)) as Argv<ExtractArgs>;
const args = argv
.command("$0 <packDb> [disablePresort] [logWarnings]", "Extract one or all compendium packs to ./packs", () => {
argv.positional("packDb", {
describe: 'A compendium pack folder name or otherwise "all"',
coerce: (arg: string) => {
return arg.toLowerCase();
},
})
.option("disablePresort", {
describe: "Turns off data item presorting.",
type: "boolean",
default: false,
})
.option("logWarnings", {
describe: "Turns on logging out warnings about extracted data.",
type: "boolean",
default: true,
})
.example([
["npm run $0 spells # extract only spells, from packs in dist/"],
["npm run $0 all # as above, but extract everything"],
]);
})
.help(false)
.version(false)
.parseSync();
const extractor = new PackExtractor(args);
try {
const total = await extractor.run();
await fs.promises.rm(extractor.tempDataPath, { recursive: true, force: true });
console.log(`Extraction complete (${total} total documents).`);
} catch (error) {
console.error(error);
process.exit(1);
}