UNPKG

1.28 kBPlain TextView Raw
1import { Logger } from './types'
2
3const fs = require('fs')
4const path = require('path')
5const chalk = require('chalk')
6const pkg = require('../package.json')
7
8const 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
19const 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 // @ts-ignore
44 logger.log(`${chalk.bold(k)}: ${v.join(', ')}`)
45 })
46}
47
48export { availableActions, printHelp }