1 | "use strict";
|
2 |
|
3 | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
4 |
|
5 | function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
6 |
|
7 | const fs = require('fs-extra');
|
8 |
|
9 | const params = require('./params');
|
10 |
|
11 | const engine =
|
12 |
|
13 | function () {
|
14 | var _ref = _asyncToGenerator(function* (argv, config) {
|
15 | const cwd = config.cwd,
|
16 | templates = config.templates,
|
17 | logger = config.logger;
|
18 | const args = Object.assign((yield params(config, argv)), {
|
19 | cwd
|
20 | });
|
21 | const generator = args.generator,
|
22 | action = args.action,
|
23 | actionfolder = args.actionfolder;
|
24 |
|
25 | if (['-h', '--help'].includes(argv[0])) {
|
26 | logger.log(`
|
27 | Usage:
|
28 | hygen [option] GENERATOR ACTION [--name NAME] [data-options]
|
29 |
|
30 | Options:
|
31 | -h, --help # Show this message and quit
|
32 | --dry # Perform a dry run. Files will be generated but not saved.`);
|
33 | process.exit(0);
|
34 | }
|
35 |
|
36 | logger.log(args.dry ? '(dry mode)' : '');
|
37 |
|
38 | if (!generator) {
|
39 | throw new Error('please specify a generator.');
|
40 | }
|
41 |
|
42 | if (!action) {
|
43 | throw new Error(`please specify an action for ${generator}.`);
|
44 | }
|
45 |
|
46 | logger.log(`Loaded templates: ${templates.replace(cwd + '/', '')}`);
|
47 |
|
48 | if (!(yield fs.exists(actionfolder))) {
|
49 | throw new Error(`I can't find action '${action}' for generator '${generator}'.
|
50 |
|
51 | You can try:
|
52 | 1. 'hygen init self' to initialize your project, and
|
53 | 2. 'hygen generator new --name ${generator}' to build the generator you wanted.
|
54 |
|
55 | Check out the quickstart for more: http://www.hygen.io/quick-start
|
56 | `);
|
57 | }
|
58 |
|
59 |
|
60 |
|
61 | const execute = require('./execute');
|
62 |
|
63 | const render = require('./render');
|
64 |
|
65 | return yield execute((yield render(args, config)), args, config);
|
66 | });
|
67 |
|
68 | return function engine(_x, _x2) {
|
69 | return _ref.apply(this, arguments);
|
70 | };
|
71 | }();
|
72 |
|
73 | module.exports = engine; |
\ | No newline at end of file |