UNPKG

star_wuhaosheng

Version:

84 lines (80 loc) 2.64 kB
#!/usr/bin/env node const { program } = require('commander') const {inquirer}=require('inquirer') const axios=require('axios') const fs=require('fs') // const { userInfo } = require('os') program.action(()=>{ console.log('顶层命令') }) //创建一个 `display` 子命令,实现显示目录下的所有文件信息 program.command('display [dir]') .option('-r','是否递归显示子级目录',false) .option('-i','要忽略显示的目录名,支持传入多个目录名') .action((dir,cmd)=>{ const absolutePath=dir||process.cwd dispalyFile(absolutePath,cmd['-r'],cmd['-i'].split('')) }) //创建一个 `user` 子命令,实现用户信息收集功能 const question=[ { type:'input', name:'userName', message:'用户名' }, { type:'password', name:'pwd', message:'密码' }, { type:'input', name:'email', message:'请输入邮箱', validate:function(value,proAnswer){ let pass=value.match(/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/) if(pass){ return true } return '请输入正确的邮箱' } }, { typeL:'input', name:'phone', message:'请输入手机号', validate:function(value,proAnswer){ let pass=value.match(/^[1][3,4,5,7,8][0-9]{9}$/) if(pass){ return true } return '请输入正确的手机号' } } ] program.command('user').action(()=>{ inquirer.prompt(question).then((answer)=>{ console.log(answer) }) }) //创建一个 `view` 子命令,实现查询历史上今天的功能 program.command('views').action(()=>{ axios.get('http://api.juheapi.com/japi/toh?key=70f6b825f8356b64c8dfb33438c0fdd1&v=1.0&month=11&day=01').then(res=>{ console.log(res.data) }) }) program.parse(process.argv); function dispalyFile(absolute,isRecuse,igriorge){ const arr=fs.readdirSync(absolute) arr.forEach((item)=>{ const suabsoulte=absolute+'/'+item const res=fs.statSync(suabsoulte) if(res.isFile()){ console.log(`${suabsoulte}文件大小是${res.size}`) return } if(isRecuse&& !igriorge.includes(item)){ dispalyFile(suabsoulte,isRecuse,igriorge) } }) }