aboutsummaryrefslogtreecommitdiff
path: root/node_modules/shelljs/make.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-24 15:10:37 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-24 15:11:17 +0200
commit7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch)
tree70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/shelljs/make.js
parentaca1143cb9eed16cf37f04e475e4257418dd18ac (diff)
fix build issues and add typedoc
Diffstat (limited to 'node_modules/shelljs/make.js')
-rw-r--r--node_modules/shelljs/make.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/node_modules/shelljs/make.js b/node_modules/shelljs/make.js
new file mode 100644
index 000000000..a8438c84e
--- /dev/null
+++ b/node_modules/shelljs/make.js
@@ -0,0 +1,57 @@
+require('./global');
+
+global.config.fatal = true;
+global.target = {};
+
+var args = process.argv.slice(2),
+ targetArgs,
+ dashesLoc = args.indexOf('--');
+
+// split args, everything after -- if only for targets
+if (dashesLoc > -1) {
+ targetArgs = args.slice(dashesLoc + 1, args.length);
+ args = args.slice(0, dashesLoc);
+}
+
+// This ensures we only execute the script targets after the entire script has
+// been evaluated
+setTimeout(function() {
+ var t;
+
+ if (args.length === 1 && args[0] === '--help') {
+ console.log('Available targets:');
+ for (t in global.target)
+ console.log(' ' + t);
+ return;
+ }
+
+ // Wrap targets to prevent duplicate execution
+ for (t in global.target) {
+ (function(t, oldTarget){
+
+ // Wrap it
+ global.target[t] = function() {
+ if (!oldTarget.done){
+ oldTarget.done = true;
+ oldTarget.result = oldTarget.apply(oldTarget, arguments);
+ }
+ return oldTarget.result;
+ };
+
+ })(t, global.target[t]);
+ }
+
+ // Execute desired targets
+ if (args.length > 0) {
+ args.forEach(function(arg) {
+ if (arg in global.target)
+ global.target[arg](targetArgs);
+ else {
+ console.log('no such target: ' + arg);
+ }
+ });
+ } else if ('all' in global.target) {
+ global.target.all(targetArgs);
+ }
+
+}, 0);