houdini-chrome-demo
Version:
houdini-study
109 lines (89 loc) • 3.06 kB
JavaScript
const program = require('commander');
// const logUpdate = require('log-update');
const shell = require('shelljs');
const repl = require('repl');
const DIRNAME = 'houdini-chrome-demo';
program
.version('2.0.18')
.usage('dir_name')
.description('houdini示例学习')
.option('-u --update', 'update houdini-chrome-demo')
.parse(process.argv);
// if (!program.args.length) {
// program.help();
// }
// const child_process = require('child_process');
// const copy = (from, to) => {
// child_process.spawn('cp', ['-r', from, to]);
// }
// console.log(111, __dirname)
if (program.update) {
pullDemo();
} else {
if (!program.args.length) {
program.help();
return;
}
if (program.args.length === 1) {
const dirName = program.args[0];
shell.mkdir('-p', program.args[0]);
shell.cd(dirName);
cloneDemo();
// shell.mkdir('-p', program.args[0]);
// shell.cp('-R', `${__dirname}/layout`, program.args[0]);
// shell.cp('-R', `${__dirname}/paint`, program.args[0]);
// shell.cp('-R', `${__dirname}/properties`, program.args[0]);
}
}
function cloneDemo() {
shell.exec(
'git clone https://github.com/luxiaoguoXQ/houdini-chrome-demo.git',
code => {
if (code !== 0) {
console.log('git clone error!! try again, show https://github.com/luxiaoguoXQ/houdini-chrome-demo.git');
shell.exit(1);
}
shell.cd(DIRNAME);
shell.exec(
'git init',
code => {
if (code !== 0) console.error('git init error')
else repl.start({prompt: 'need install http-server ? (Y/N) >', eval: myEval})
}
)
}
)
}
function pullDemo() {
shell.exec(
'git pull https://github.com/luxiaoguoXQ/houdini-chrome-demo.git master',
code => {
if (code !== 0) console.error('拉取最新代码异常!!!')
else console.info('拉取成功')
}
)
}
function myEval(cmd, context, filename, callback) {
// console.log('cmd', cmd, 'context', context, 'filename', filename, 'callback', callback)
if (cmd.toUpperCase().trim() === 'Y') {
// let i = 0;
// const frames = [ '-', '\\', '|', '/' ];
// const interval = setInterval(() => {
// const frame = frames[i = ++i % frames.length];
// logUpdate(`💐 ${frame} installing ${frame} 💐`)
// }, 50)
shell.exec('npm i -g http-server -ddd', code => {
// clearInterval(interval);
if (code !== 0) {
console.log('install http-server error!! try again');
shell.exit(1);
}
console.log('💐 Complete! You can test your houdini demo 💐');
shell.exit(1);
})
} else {
console.log('💐 Complete! You can test your houdini demo 💐');
shell.exit(1);
}
}