UNPKG

@fxext/cli

Version:

fanxing miniapp cli

63 lines (50 loc) 1.28 kB
#!/usr/bin/env node const { program } = require('commander'); const path = require('path'); const fs = require('fs-extra'); const glob = require('glob'); const log = require('../lib/log'); let paramProjectName = ''; async function mian() { program .usage('init [project-name] [options]') .arguments('[project-name]') .action(name => { paramProjectName = name; }) .parse(process.argv); ensureProjectDir( paramProjectName, async projectName => { require('../lib/init')(projectName); }, () => { process.exit(1); } ); } function ensureProjectDir(dirname, calllback, failcallback) { const filesList = glob.sync('*'); if (dirname) { if (invalid(dirname)) { log.error('非法项目名,请使用字母、数字和-'); failcallback(); return; } let exists = filesList.some(fileName => fileName == dirname); if (exists) { log.error(`错误: '${dirname}' 目录已经存在!`); failcallback(); } else { calllback(dirname); } } else { log.hint('将在当前目录创建项目\n'); const basename = path.basename(process.cwd()); calllback(basename); } function invalid(name) { return /[^A-Za-z0-9-]/.test(name + ''); } } mian();