From 47d2f588b2113ffec3c8dfa70b8adeb4471a5324 Mon Sep 17 00:00:00 2001 From: "Nicholas C. Zakas" Date: Fri, 15 May 2015 14:20:35 -0700 Subject: [PATCH] Breaking: Allow -- as args separators (fixes #188) --- make.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/make.js b/make.js index 53e5e81..f78b4cf 100644 --- a/make.js +++ b/make.js @@ -3,9 +3,18 @@ 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 -var args = process.argv.slice(2); setTimeout(function() { var t; @@ -21,8 +30,8 @@ setTimeout(function() { (function(t, oldTarget){ // Wrap it - global.target[t] = function(force) { - if (oldTarget.done && !force) + global.target[t] = function() { + if (oldTarget.done) return; oldTarget.done = true; return oldTarget.apply(oldTarget, arguments); @@ -35,13 +44,13 @@ setTimeout(function() { if (args.length > 0) { args.forEach(function(arg) { if (arg in global.target) - global.target[arg](); + global.target[arg](targetArgs); else { console.log('no such target: ' + arg); } }); } else if ('all' in global.target) { - global.target.all(); + global.target.all(targetArgs); } }, 0);