UNPKG

1.38 kBPlain TextView Raw
1#!/usr/bin/env node
2'use strict'
3
4const path = require('path')
5const program = require('commander')
6const slush = require.resolve('slush/bin/slush')
7const exec = require('../util/exec')
8const logger = require('../util/logger')
9const isInstalled = require('../util/is-installed')
10const npm = require('../util/npm')
11const config = require('../util/config')
12
13program
14 .option('-r --registry <registry-url>', '指定镜像')
15 .parse(process.argv)
16
17const option = program.args[0] || config.get('template')
18
19if (!option) {
20 logger.fatal('请指定脚手架')
21}
22
23const name = 'xdc-' + option
24const template = 'slush-' + name
25
26/**
27 * download template
28 * @param {string} template template name
29 */
30const installTemplate = template => {
31 logger.log(`downloading '${template}'`)
32 npm.install(template, program.registry)
33 logger.success('脚手架安装成功\n')
34}
35
36/**
37 * run slush
38 * @param {string} name slush template name
39 */
40const generator = function (name) {
41 logger.log('generator project')
42 exec(slush, [ name ], {
43 stdio: 'inherit',
44 errorMessage: 'slush runtime error'
45 })
46}
47
48if (!isInstalled('generator-package-xdc')) {
49 logger.log('下载脚手架相关依赖')
50 npm.install('generator-package-xdc', program.registry)
51}
52if (!isInstalled(path.join(template.split('@')[0], 'package.json'))) {
53 installTemplate(template)
54}
55
56generator(name.split('@')[0])