1 | "use strict";
|
2 |
|
3 | const fs = require('fs');
|
4 |
|
5 | const path = require('path');
|
6 |
|
7 | const chalk = require('chalk');
|
8 |
|
9 | const pkg = require('../package.json');
|
10 |
|
11 | const availableActions = templates => {
|
12 | const generators = fs.readdirSync(templates).filter(_ => fs.lstatSync(path.join(templates, _)).isDirectory());
|
13 | return generators.reduce((acc, generator) => {
|
14 | const actions = fs.readdirSync(path.join(templates, generator));
|
15 | acc[generator] = actions;
|
16 | return acc;
|
17 | }, {});
|
18 | };
|
19 |
|
20 | const printHelp = (templates, logger) => {
|
21 | logger.log(`Hygen v${pkg.version}`);
|
22 | logger.log('\nAvailable actions:');
|
23 |
|
24 | if (!templates) {
|
25 | logger.log(`No generators or actions found.
|
26 |
|
27 | This means I didn't find a _templates folder right here,
|
28 | or anywhere up the folder tree starting here.
|
29 |
|
30 | Here's how to start using Hygen:
|
31 |
|
32 | $ hygen init self
|
33 | $ hygen with-prompt new --name my-generator
|
34 |
|
35 | (edit your generator in _templates/my-generator)
|
36 |
|
37 | $ hygen my-generator
|
38 |
|
39 | See http://hygen.io for more.
|
40 |
|
41 | `);
|
42 | return;
|
43 | }
|
44 |
|
45 | Object.entries(availableActions(templates)).forEach(([k, v]) => {
|
46 | logger.log(`${chalk.bold(k)}: ${v.join(', ')}`);
|
47 | });
|
48 | };
|
49 |
|
50 | module.exports = {
|
51 | availableActions,
|
52 | printHelp
|
53 | }; |
\ | No newline at end of file |