index.js 3.63 KB
#!/usr/bin/env node
var colors = require('colors');
var url = require("openurl");
var requireGlob = require('require-glob');

mainDir = __dirname;
var tool={
	task:function(TASKS){
		if(TASKS==null) return;
		for (var i = 0; i < TASKS.length; i++) {
		    var task = TASKS[i];
		    if (task.summary) {
		      var name = '   ' + task.name + '  ';
		      var dots = '';
		      while ((name + dots).length < 20) {
		        dots += '.';
		      }
		      process.stderr.write(name.green.bold + dots.grey + '  ' + task.summary.bold + (task.state?'('+task.state+')':'')+'\n');
		    }
		  }
	},
	logo:function(){
		console.log("  ____   ____ ___  _____ __  ______");
		console.log(" /    \\_/ __ \\\\  \\/  /  |  \\/  ___/");
		console.log("|   |  \\  ___/ >    <|  |  /\___ \\ "); 
		console.log("|___|  /\\___  >__/\\_ \\____//____  >");
		console.log("     \\/     \\/      \\/          \\/ ");
		console.log("version: 0.1".red);
		console.log("=========================================".green);
		console.log("");
	}

}

var option = process.argv[2];
if(option==null){
		tool.logo();
}

var taskMacro=[];
var task=[];

requireGlob("./macro/*.js").then(function (macromodule) {
	
if(option==null){
		console.log("==============".green+" MACROFUNCTIONS ".yellow+"===============".green);
		//caricamento dinamico dei task
	   	
		for(i in macromodule){
			var summary = macromodule[i].info;
				summary.name=i;
			taskMacro.push(summary);	
			}
		tool.task(taskMacro);		
		}

	//execute
	for(var item in macromodule)
		if(option===item)
			macromodule[item].execute(process,tool);

})




requireGlob("./modules/*.js").then(function (modules) {

	if(option==null){
		console.log("==============".green+" MICROFUNCTIONS ".yellow+"===============".green);
		//caricamento dinamico dei task
		//var task=[];   	
		for(i in modules){
			var summary = modules[i].info;
				summary.name=i;
			task.push(summary);	
			}
		tool.task(task);		
		}else{
			var log4js = require('log4js');
			log4js.configure({
			appenders: [
			{   type: 'console',
	            category: 'trace',
	            maxLogSize: 20480
	        },
	        {   type: 'file',
	            filename: "logs/debug.log", // specify the path where u want logs folder error.log
	            category: 'debug',
	            maxLogSize: 20480,
	            backups: 10
	        },
	        {   type: "file",
	            filename: "logs/info.log", // specify the path where u want logs folder info.log
	            category: 'info',
	            maxLogSize: 20480,
	            backups: 10
	        },
	        {   type: 'file',
	            filename: "logs/warn.log", // specify the path where u want logs folder error.log
	            category: 'warn',
	            maxLogSize: 20480,
	            backups: 10
	        },
	        {   type: "file",
	            filename: "logs/error.log", // specify the path where u want logs folder info.log
	            category: 'error',
	            maxLogSize: 20480,
	            backups: 10
	        },
	        {   type: 'file',
	            filename: "logs/fatal.log", // specify the path where u want logs folder debug.log
	            category: 'fatal',
	            maxLogSize: 20480,
	            backups: 10
	        }
			]});
			

			var loggertrace = log4js.getLogger('trace');
			var loggerdebug = log4js.getLogger('debug');
			var loggerinfo = log4js.getLogger('info'); 
			var loggerwarn = log4js.getLogger('warn');
			var loggererror = log4js.getLogger('error');
			var loggerfatal = log4js.getLogger('fatal'); 
			
			console.log = function(message){
			  loggertrace.info(message);
			}
		}

	//execute
	for(var item in modules)
		if(option===item)
			modules[item].execute(process,tool);

})