1 | #!/usr/bin/env node
|
2 |
|
3 | const path = require("path");
|
4 | const fs = require("fs");
|
5 | const load = require("./util/load");
|
6 | const fns = require("./util/fns");
|
7 | const cwd = process.cwd();
|
8 | require("./util/aop");
|
9 | require("colors");
|
10 |
|
11 | main();
|
12 | function main() {
|
13 | const folder = path.join(__dirname, "./commands");
|
14 | const keys = getCommands(fs.readdirSync(folder));
|
15 | const key = getKey();
|
16 | if (keys.includes(key)) {
|
17 | const argv = fns.getParams(process.argv);
|
18 | const params = Object.assign({ cwd, load, fns }, argv);
|
19 | require(`./commands/${key}`)(params);
|
20 | }
|
21 | }
|
22 |
|
23 | function getCommands(folder) {
|
24 | return folder
|
25 | .filter(it => !it.startsWith("."))
|
26 | .map(it => it.replace(/\.[a-z]+$/, ""));
|
27 | }
|
28 |
|
29 | function getKey() {
|
30 | return process.argv[2].match(/^\w+/)[0];
|
31 | }
|