UNPKG

1.24 kBJavaScriptView Raw
1"use strict";
2
3const fs = require('fs');
4
5const path = require('path');
6
7const chalk = require('chalk');
8
9const pkg = require('../package.json');
10
11const 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
20const 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
50module.exports = {
51 availableActions,
52 printHelp
53};
\No newline at end of file