1 | "use strict";
|
2 |
|
3 | const fs = require("fs");
|
4 | const fmt = require("simple-fmt");
|
5 | const tryor = require("tryor");
|
6 | const defs = require("./defs-main");
|
7 |
|
8 | if (process.argv.length <= 2) {
|
9 | console.log("USAGE: defs file.js");
|
10 | process.exit(-1);
|
11 | }
|
12 | const filename = process.argv[2];
|
13 |
|
14 | if (!fs.existsSync(filename)) {
|
15 | console.log(fmt("error: file not found <{0}>", filename));
|
16 | process.exit(-1);
|
17 | }
|
18 |
|
19 | const src = String(fs.readFileSync(filename));
|
20 |
|
21 | const config = tryor(function() {
|
22 | return JSON.parse(String(fs.readFileSync("defs-config.json")));
|
23 | }, {});
|
24 |
|
25 | const ret = defs(src, config);
|
26 | if (ret.errors) {
|
27 | process.stderr.write(ret.errors.join("\n"));
|
28 | process.stderr.write("\n");
|
29 | process.exit(-1);
|
30 | }
|
31 |
|
32 | if (config.stats) {
|
33 | process.stdout.write(ret.stats.toString());
|
34 | process.exit(0);
|
35 | }
|
36 | if (ret.ast) {
|
37 | process.stdout.write(JSON.stringify(ret.ast, null, 4));
|
38 | }
|
39 | if (ret.src) {
|
40 | process.stdout.write(ret.src);
|
41 | }
|