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