-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
46 lines (37 loc) · 1.35 KB
/
index.js
File metadata and controls
46 lines (37 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const yeoman = require('yeoman-environment')
const program = require('commander')
const semver = require('semver')
const path = require('path')
const updateNotifier = require('update-notifier')
const NODE_MIN_VERSION = '10.0.0'
const meta = { lib: 'Create a new lib in the current folder' }
const env = yeoman.createEnv()
Object.keys(meta).forEach(name => {
const moduleName = path.join(__dirname, './generators/lib/')
env.register(require.resolve(moduleName), `yalt4node:${name}`)
})
module.exports = function (argv, generatorOptions = {}) {
const pkg = require(path.join(__dirname, 'package.json'))
let description = 'Run a generator. Type can be\n'
Object.keys(meta).forEach(name => {
description += `\t• ${name} - ${meta[name]}\n`
})
updateNotifier({ pkg }).notify()
program.version(pkg.version).usage('upgrade <version>').usage('generate [type]')
if (!semver.satisfies(process.version, `>= ${NODE_MIN_VERSION}`)) {
console.error(`Filete CLI and generated application requires Node v${NODE_MIN_VERSION} or later.`)
return process.exit(1)
}
program.command('generate [type]')
.alias('g')
.description(description)
.action(type => {
if (!type) {
program.help()
} else {
env.run(`yalt4node:${type}`, generatorOptions)
}
})
program.parse(argv)
if (argv.length === 2) program.help()
}