#!/usr/bin/env node var pkg = require('../package.json'); var path = require('path'); var swig = require('swig'); var program = require('commander'); var readline = require('readline-sync'); var file = require('file-utils'); var findup = require('findup-sync'); var colors = require('colors'); // 获得运行目录 var pwd; var configFile = findup('moz.config.js'); if (configFile !== null) { var configPath = path.parse(configFile); pwd = process.env.pwd = configPath['dir']; } else { pwd = process.env.pwd = path.resolve('.'); } // 获取 Moz 配置文件 var conf = require('../config/config.js'); // 禁用 file-utils 日志 file.option('logger', { warn: function() {}, write: function() {} }); // 检查更新 require('../update.js'); // 处理 gulp 任务 function gulptask() { process.argv.push('--gulpfile', path.resolve(__dirname, '../gulpfile.js')); require('gulp/bin/gulp'); } program .version(pkg.version); program .command('init', 'init Moz project') .command('serve', 'serve local development environment') .command('build', 'complie the development files') .command('deploy', 'deploy compiled files to ftp server') .command('pack', 'pack compiled files to a zip') .on('init', function() { // 判断是否已经存在配置文件 var configJson = conf.parsePwd('moz.config.js'); var appFolder = conf.parsePwd(conf.app); if (file.exists(configJson)) { console.log('%s is already exists!', 'moz.config.js'.red); } else { var answer = readline.question('What is you project name: '); var source = path.resolve(__dirname, '../template/'); function initFile(tmpl) { return swig.renderFile(tmpl, { name: answer }); } file.expand({ dot: true }, path.join(source, '*')) .forEach(function(p) { var filename = p.substr(source.length + 1); var dest = path.join(pwd, filename); var content = initFile(p); if (filename !== '.editorconfig' || !file.exists(dest)) { file.write(dest, content); } }); // 判断是否需要创建开发文件夹 if (!file.exists(appFolder)) { file.mkdir(conf.app + '/css/vendor'); file.mkdir(conf.app + '/css/partials'); file.mkdir(conf.app + '/js/vendor'); file.mkdir(conf.app + '/template'); file.mkdir(conf.app + '/images'); file.mkdir(conf.app + '/fonts'); file.mkdir(conf.app + '/media'); file.write(conf.parsePwd(conf.app + '/index.html', '')); } console.log('Init success!'.green); } }) .on('serve', gulptask) .on('build', gulptask) .on('deploy', gulptask) .on('pack', gulptask); program .parse(process.argv);