ng-make
Version:
Easy tools for create project in AngularJS
216 lines (178 loc) • 7.6 kB
JavaScript
/**
module format
{
"name":"angelo",
"description":"This is a try module",
"installcmd":"bower install angelo",
"usageName":"angelo",
"path":"bower_components/angelo/dist/script.js"
}
**/
exports.loadModule = function(fs){
var ret = fs.existsSync("module.json");
if(ret){
return JSON.parse(fs.readFileSync('module.json', 'utf8'));
}else{
return ret;
}
}
exports.saveModule = function(fs,module,app){
// console.log("./"+app+"/");
fs.open("./"+app+"/module.json",'w+',function(err,fd){
fs.write(fd,JSON.stringify(module));
})
}
exports.saveNewModule = function(fs,module){
fs.open("./module.json",'w+',function(err,fd){
fs.write(fd,JSON.stringify(module));
})
}
exports.insertNewModule = function(moduleData,module){
var newModule = {};
newModule = moduleData;
module[module.length]=moduleData;
}
//moduleManager.installModule(moduleManager,http,fs,config,indexGen);
exports.installModule = function(moduleManager,http,fs,config,indexGen,moduleRepo,namePackage,shelljs,cssGen,states,stateManager){
var options = {
host: 'www.angelocarraggi.altervista.org',
port: 80,
path: '/ng-make/module.php'
};
http.get(options, function(res) {
//console.log("Got response: " + res.statusCode);
//console.log("response:\n"+res.response);
res.setEncoding('utf8');
res.on('data', function (chunk) {
var module = moduleManager.loadModule(fs);
moduleRepo=JSON.parse(chunk);
var repoData = {};
var i=0;
moduleRepo.forEach(function(val,id){
if(namePackage == val.name){
repoData = val;
i++;
}
});
var err=0;
module.forEach(function(val,id){
if(namePackage==val.name){
err=1;
}
});
if(err==1){
console.log("[ FAIL ] This module has been installed!");
process.exit();
}
if(i==0){
console.log('This package name doesn\'t exists view all package with: \'ng-make module list\'');
return 0;
}
var usageName = repoData.usage;
var installcmd = repoData.installcmd;
var arrCmd = installcmd.split(','); //FOR MORE COMMAND IN THE PACKAGE
arrCmd.forEach(function(val,id){
shelljs.exec(val);
})
//shelljs.exec(repoData.installcmd);
if(repoData.usageName=""){
}else{
console.log("usageName="+repoData.usage);
var arrUsageName = usageName.split(',');//FOR MORE USAGENAME IN THE PACKAGE
arrUsageName.forEach(function(val,id){
var file = fs.readFileSync('settings/app.js','utf8');
file = file.replace("//%Anchor",","+val+"\n//%Anchor");
fs.open('settings/app.js','w+',function(err,fd){
fs.write(fd,file);
})
})
}
var pathjs = repoData.pathjs;
var arrPathJS = pathjs.split(',');
arrPathJS.forEach(function(val,id){
indexGen.addingScriptDependency(config,val,fs);
})
var pathcss = repoData.pathcss;
var arrPathCSS = pathcss.split(',');
arrPathCSS.forEach(function(val,id){
indexGen.addingCSSDependency(val,fs);
})
var module = moduleManager.loadModule(fs);
module[module.length]=repoData;
moduleManager.saveNewModule(fs,module);
if(states==false){
}else{
if(repoData.usageCtrl!=""){
stateManager.updateControllerFile(repoData.usageCtrl,fs,states);
}
}
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
}
exports.addModule = function(moduleData,config,fs,indexGen){
var file = fs.readFileSync('settings/app.js','utf8');
file = file.replace("//%Anchor",",'"+moduleData.usageName+"'\n//%Anchor");
fs.open('settings/app.js','w+',function(err,fd){
fs.write(fd,file);
})
//"use strict";
// accessing the module in another.
// this can be done by calling angular.module without the []-brackets
//angular.module('mymod')
fs.open('js/'+moduleData.name+".js",'w+',function(err,fd){
fs.write(fd, "'use strict';\nangular.module(\'"+moduleData.usageName+"\',[]);\n");
})
indexGen.addingScriptDependency(config,moduleData.path,fs);
}
exports.listModuleRepo = function(http,moduleRepo,cmdMan){
var options = {
host: 'www.angelocarraggi.altervista.org',
port: 80,
path: '/ng-make/module.php'
};
http.get(options, function(res) {
//console.log("Got response: " + res.statusCode);
//console.log("response:\n"+res.response);
res.setEncoding('utf8');
res.on('data', function (chunk) {
moduleRepo=JSON.parse(chunk);
cmdMan.printModulesRepository(moduleRepo);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
}
exports.listInstalled = function(moduleManager,fs){
console.log( "██╗███╗ ██╗███████╗████████╗ █████╗ ██╗ ██╗ ███████╗██████╗ ███╗ ███╗ ██████╗ ██████╗ ██╗ ██╗██╗ ███████╗");
console.log( "██║████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║ ██║ ██╔════╝██╔══██╗ ████╗ ████║██╔═══██╗██╔══██╗██║ ██║██║ ██╔════╝");
console.log( "██║██╔██╗ ██║███████╗ ██║ ███████║██║ ██║ █████╗ ██║ ██║ ██╔████╔██║██║ ██║██║ ██║██║ ██║██║ █████╗ ");
console.log( "██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██║ ██╔══╝ ██║ ██║ ██║╚██╔╝██║██║ ██║██║ ██║██║ ██║██║ ██╔══╝ ");
console.log( "██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗███████╗██████╔╝ ██║ ╚═╝ ██║╚██████╔╝██████╔╝╚██████╔╝███████╗███████╗");
console.log( "╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝");
console.log( " ");
var module = moduleManager.loadModule(fs);
module.forEach(function(val,id){
if(id!=0){
console.log(val.name);
}
})
}
/*exports.usingManual = function(http,moduleRepo){
var options = {
host: 'www.angelocarraggi.altervista.org',
port: 80,
path: '/ng-make/using.php'
};
http.get(options, function(res) {
//console.log("Got response: " + res.statusCode);
//console.log("response:\n"+res.response);
res.setEncoding('utf8');
res.on('data', function (chunk) {
moduleRepo=JSON.parse(chunk);
moduleRepo.forEach(function(val,id){
})
}
}
}*/