-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
47 lines (34 loc) · 1.35 KB
/
index.js
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
#!/usr/bin/env node
'use strict';
const { program } = require('commander');
const pkg = require('./package.json');
const generator = require('./generator');
const utils = require('./utils');
process.bin = pkg.name;
program.version(pkg.version)
.option('--vars [data]', 'Use custom variables')
.option('--delimiter [d]', 'Use another delimiter instead of #')
.option('--package-folder [pck]', 'Set the package folder')
.usage("<command> [options]");
program.command("g <name> <path> [vars]")
.description("Generate a new stuff")
.action((name, path, vars) => {
if(program.packageFolder)
global.CUSTOM_PACKAGE_FOLDER = program.packageFolder;
// Trying obtain xtuff config from project package.json (xtuff)
utils.getXtuffPackageConfig().then((pckConfig) => {
let v = vars || program.vars || pckConfig.vars;
if(v && typeof v === 'string')
try{ v = JSON.parse(v); } catch (err) { v = {}; console.info('INVALID VARIABLES PASSED', err); }
const delimiter = program.delimiter || pckConfig.delimiter;
generator(name, path, delimiter, v);
});
});
program.on('*', opt => {
cmd.help();
});
program.parse(process.argv);
// Handle case where no command is passed (`$ xtuff`)
if (!process.argv.slice(2).length) {
program.help();
}