1 | 'use strict'
|
2 | const exec = require('child_process').exec
|
3 | const co = require('co')
|
4 | const prompt = require('co-prompt')
|
5 | const config = require('../templates')
|
6 | const chalk = require('chalk')
|
7 |
|
8 | module.exports = () => {
|
9 | co(function *() {
|
10 |
|
11 | let tplName = yield prompt('Template name: ')
|
12 | let projectName = yield prompt('Project name: ')
|
13 | let gitUrl
|
14 | let branch
|
15 |
|
16 | if (!config.tpl[tplName]) {
|
17 | console.log(chalk.red('\n × Template does not exit!'))
|
18 | process.exit()
|
19 | }
|
20 | gitUrl = config.tpl[tplName].url
|
21 | branch = config.tpl[tplName].branch
|
22 |
|
23 |
|
24 | let cmdStr = `git clone ${gitUrl} ${projectName} && cd ${projectName} && git checkout ${branch}`
|
25 |
|
26 |
|
27 | console.log(chalk.white('\n 开始生成相关文件...'))
|
28 |
|
29 | exec(cmdStr, (error, stdout, stderr) => {
|
30 | if (error) {
|
31 | console.log(error)
|
32 | process.exit()
|
33 | }
|
34 |
|
35 | console.log(chalk.green('\n √ 目录已初始化成功~~~'))
|
36 | console.log(`\n cd ${projectName} && npm install||yarn \n`)
|
37 | process.exit()
|
38 | })
|
39 | })
|
40 | }
|