UNPKG

1.62 kBJavaScriptView Raw
1!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n():"function"==typeof define&&define.amd?define(n):n()}(0,function(){"use strict";var e=require("exec-sh"),n=require("fs-jetpack"),a=require("commander"),o=require("chalk"),r=console.log,t=function(e){return r(o.yellow("\n"+e))};a.version("0.0.9").option("-p, --path <path>","Change base path (use relative path)",".").option("-a, --add <module>","Add a module to list (in allspark.json)",".").parse(process.argv),t("✨ Allspark ✨");var s=process.cwd(),i=a.path,l=(i="/"===i.slice(-1)?i.slice(0,-1):i)+"/allspark",c=s+i.slice(1)+"/allspark",u=l+"/allspark.json",d=n.read(u,"json");d&&d.modules||process.exit();r("- path: ",i),r("- modules: ",d.modules);var p=[];d.modules.forEach(function(e){var a=c+"/"+e+"/index.js",o=require(a).Module;p.push("!! "+o.NAME),p=p.concat(o.install().commands||[]);var t=function(e){var a=[],o=function(e){var a=[];return e&&e.length>0&&e.forEach(function(e){var o=i+"/node_modules/"+e;"dir"!==n.exists(o)&&a.push(e)}),a};if("function"==typeof e.install){var r=e.install(),t=o(r.dependencies);t.length>0&&a.push("yarn add "+t.join(" "));var s=o(r.devDependencies);s.length>0&&a.push("yarn add "+s.join(" ")+" --dev")}return a}(o);p=p.concat(t);var s=o.start();s.commands&&s.commands.forEach(function(e){return p.push(function(e,n){var a=e;return a=a.replace("$DIR","./allspark/"+n.ID)}(e,o))}),r("exec commands:\n",p)}),function(n,a){!function o(){var r=n.shift()||"";r&&(0===r.indexOf("!! ")?(t("⚡️ "+r.slice(3)),n.length?o():a(null)):e(r,{cwd:i},function(e){e?a(e):n.length?o():a(null)}))}()}(p,function(){})});