UNPKG

workbench-template-view

Version:

a tool for download git repository

150 lines (142 loc) 6.78 kB
const fs = require('fs-extra') const path = require('path') const downloadGitRepo = require('download-git-repo') const inquirer = require('inquirer') const ora = require('ora') const chalk = require('chalk') const serve = require('serve') const detectPort = require('detect-port') const opn = require('opn') const figlet = require('figlet') function copyTmpl(name, tmplName) { if (/^eris$/i.test(name)) { let spinner = ora('bia2eris downloading...'), tmplGitRepo = 'gitlab:git.mail.netease.com:activity_pub/bia2eris#master', dist = path.join(process.cwd(), 'bia'); spinner.start(); downloadGitRepo(tmplGitRepo, dist, { clone: true }, function(err) { spinner.stop(); if (!err) { figlet('^ Bia >>>', function(err, data) { if (err) { console.log(chalk.yellow(err)); return; } console.log(data); console.log('Bia success.'); }); } else { console.log(chalk.yellow(err)); } }); return; } else if (/^act$/i.test(name)) { let spinner = ora(`bia2act downloading...`), tmplGitRepo = 'gitlab:git.mail.netease.com:activity_pub/bia2act#master', dist = path.join(process.cwd(), 'bia'); spinner.start(); downloadGitRepo(tmplGitRepo, dist, { clone: true }, function(err) { spinner.stop(); if (!err) { fs.copy(path.join(process.cwd(), 'bia'), path.join(process.cwd(), ''), err => { if (err) return console.error(err) fs.remove(path.join(process.cwd(), 'bia'), err => { if (err) return console.error(err) let question = [ { type: 'list', name: 'category', message: '请选择初始化的模版种类', choices: ['严选', '有钱', '邮箱大师', 'demo'], filter: function(_val) { return _val; } }, { type: 'list', name: 'platform', message: '请选择pc或移动端', choices: ['PC&H5', 'PC', 'H5'], filter: function(_val) { return _val; } } ]; inquirer.prompt(question).then((_answers) => { let _category = _answers.category, _platform = _answers.platform, _categoryType = '', _platformType = ''; if (_category == '严选') { _categoryType = 'yanxuan'; } else if (_category == '有钱') { _categoryType = 'youqian'; } else if (_category == '邮箱大师') { _categoryType = 'mailmaster'; } else if (_category == 'demo') { _categoryType = 'demo'; } else { // } if (_platform == 'PC') { _category = 1; } else if (_platform == 'H5') { _category = 2; } else { _category = 0; } spinner = ora(`bia2act tpl downloading...`); spinner.start(); tmplGitRepo = `gitlab:git.mail.netease.com:activity_pub/bia_tpl#${_categoryType}`; dist = path.join(process.cwd(), 'src'); fs.removeSync(path.join(process.cwd(), 'src')) downloadGitRepo(tmplGitRepo, dist, { clone: true }, function(err) { spinner.stop(); if (!err) { fs.copy(path.join(process.cwd(), `src/${_categoryType}`), path.join(process.cwd(), `src`), err => { if (err) return console.error(err) fs.remove(path.join(process.cwd(), `src/${_categoryType}`), err => { if (err) return console.error(err) if (_category == 1) { fs.removeSync(path.join(process.cwd(), `src/h5`)); } else if (_category == 2) { fs.removeSync(path.join(process.cwd(), `src/pc`)); } else { // } fs.removeSync(path.join(process.cwd(), `src/README.md`)); figlet('^ Bia >>>', function(err, data) { if (err) { console.log(chalk.yellow(err)); return; } console.log(data); console.log('Bia success.'); }); }); }); } else { console.log(chalk.yellow(err)); } }); }); }) }) } else { console.log(chalk.yellow(err)); } }); } else if (/^server$/i.test(name)) { detectPort(8337).then((port) => { serve(path.join(process.cwd(), ''), { port: `${port}` }); opn(`http://localhost:${port}`) }) return; } else { console.log(chalk.yellow('bia命令已更新,创建活动请先新建活动目录,在目录内执行bia act')); return; } } module.exports = copyTmpl