UNPKG

houdini-chrome-demo

Version:

houdini-study

109 lines (89 loc) 3.06 kB
#! /usr/bin/env node 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); } }