generator-clam
Version:
A Clam generator for Yeoman
87 lines (67 loc) • 1.6 kB
JavaScript
// 'use strict';
var util = require('util');
var path = require('path');
var ClamLogo = require('../app/logo').ClamLogo;
var yeoman = require('yeoman-generator');
var ABC = require('abc-generator');
var AppGenerator = module.exports = function AppGenerator(args, options, config) {
// yeoman.generators.Base.apply(this, arguments);
ABC.UIBase.apply(this, arguments);
this.on('end', function () {
}.bind(this));
this.on('error',function(){});
};
util.inherits(AppGenerator, ABC.UIBase);
AppGenerator.prototype.askFor = function askFor() {
var cb = this.async();
// welcome message
console.log(ClamLogo(this));
console.log('建议您在 src/widgets 目录执行该命令!');
var prompts = [{
name: '_version',
message: 'version?',
default: getversion(this.args)
}];
this.prompt(prompts, function (err,props) {
if (err) {
return this.emit('error', err);
}
this._version = props._version;
cb();
}.bind(this));
};
AppGenerator.prototype.begin = function begin() {
this.invoke('kpm',{
args:[
this._version
]
});
};
function consoleColor(str,num){
if (!num) {
num = '32';
}
return "\033[" + num +"m" + str + "\033[0m"
}
function green(str){
return consoleColor(str,32);
}
function yellow(str){
return consoleColor(str,33);
}
function red(str){
return consoleColor(str,31);
}
function blue(str){
return consoleColor(str,34);
}
function getversion(a){
if(!a || a.length == 0 ){
return '1.0'
}
if(/^\d+\.\d+$/i.test(a[0])){
return a[0].toString();
} else {
return '1.0';
}
}