UNPKG

mold-js

Version:

MoldJS structure and pattern framework commandline interface

112 lines (101 loc) 3 kB
//!info transpiled Seed({ type : "action", platform : 'node', include : [ { Command : 'Mold.Core.Command' }, { Helper : 'Mold.Core.CLIHelper' }, { Promise : 'Mold.Core.Promise' }, { Version : 'Mold.Core.Version' }, "Mold.CMD.GetMoldJson", "Mold.CMD.UpdateMoldJson" ] }, function(){ Command.register({ name : "create-dependency", description : "Creates a new dependency!", parameter : { '-name' : { 'description' : 'The dependency name!', 'required' : true, }, '-n' : { 'alias' : '-name' }, '-version' : { 'description' : 'The dependency version!', 'required' : true, }, '-v' : { 'alias' : '-version' }, '-path' : { 'description' : 'The dependency path!', 'required' : true, }, '-p' : { 'alias' : '-path' } }, code : function(args){ Helper = Helper.getInstance(args.conf); return new Promise(function(resolve, reject){ var configPath = (args.parameter['-config-path']) ? args.parameter['-config-path'].value : ''; var name = args.parameter['-name'].value; var path = args.parameter['-path'].value; var version = args.parameter['-version'].value; Command.getMoldJson({ '-p' : configPath}).then(function(moldJson){ if(!moldJson){ reject(new Error("Config ist not defined! [" + configPath + "]")) } var currentConf = moldJson.parameter.source[0].data; var createDependency = function(){ currentConf.dependencies = currentConf.dependencies || []; currentConf.dependencies.push({ name : name, path : path, version : version || '*' }) Command.updateMoldJson({ '-property' : 'dependencies', '-value' : currentConf.dependencies, '--silent' : true }) .then(function(){ args.parameter.dependencies = currentConf.dependencies Helper.ok("Dependency " + name + " successfully added!").lb(); resolve(args) }) .catch(reject); } var getDependency = function(name){ return currentConf.dependencies.find(function(entry){ return (name === entry.name) ? true : false; }) } if(!currentConf.dependencies){ createDependency(); }else{ var dep = getDependency(name); if(dep){ //check existing dep here var result = Version.compare(dep.version, version); if(result === "smaller"){ Helper .info("Current version of dependency '" + name + " (" + dep.version + ")' is smaller then the available version (" + version + ").") .lb() .info("Use 'mold update' to update your dependencies!") .lb(); } resolve(args) }else{ createDependency(); } }; }) }); } }) } )