UNPKG

1.86 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.loadConfig = exports.run = void 0;
4const ymir_1 = require("@fimbul/ymir");
5const fs = require("fs");
6const path = require("path");
7const debug = require("debug");
8const log = debug('wotan:cli');
9async function run(argv) {
10 if (argv.length === 1 && /^(')?-(?:v|-version)\1$/.test(argv[0]))
11 return console.log(require('../package.json').version);
12 try {
13 const config = await loadConfig('.');
14 const args = (await Promise.resolve().then(() => require('./argparse'))).parseArguments(argv, config);
15 if (!await (await Promise.resolve().then(() => require('./commands'))).runCommand(args, undefined, config))
16 process.exitCode = 2;
17 }
18 catch (e) {
19 console.error(e instanceof ymir_1.ConfigurationError ? e.message : e);
20 process.exitCode = 1;
21 }
22}
23exports.run = run;
24function loadConfig(dir) {
25 const fileName = path.join(dir, '.fimbullinter.yaml');
26 return new Promise((resolve) => {
27 return fs.readFile(fileName, { encoding: 'utf8' }, (err, content) => {
28 if (err) {
29 log("Not using '%s': %s", fileName, err.code);
30 return resolve({});
31 }
32 Promise.resolve().then(() => require('js-yaml')).then((yaml) => {
33 try {
34 resolve(yaml.load(content) || {});
35 log("Using global options from '%s'", fileName);
36 }
37 catch (e) {
38 log("Not using '%s': %s", fileName, e && e.message);
39 resolve({});
40 }
41 });
42 });
43 });
44}
45exports.loadConfig = loadConfig;
46if (require.main === module) {
47 log('CLI arguments: %O', process.argv);
48 run(process.argv.slice(2));
49}
50//# sourceMappingURL=cli.js.map
\No newline at end of file