Skip to content

Commit

Permalink
New: add a feature to pass arguments on to each task. (fixes #44)
Browse files Browse the repository at this point in the history
  • Loading branch information
robario authored and mysticatea committed Jun 16, 2016
1 parent 87e0bca commit 97a1649
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 7 deletions.
5 changes: 5 additions & 0 deletions src/bin/common/parse-cli-args.js
Expand Up @@ -109,6 +109,11 @@ class ArgumentSet {
* @returns {ArgumentSet} set itself.
*/
function parseCLIArgsCore(set, args) { // eslint-disable-line complexity
const terminator = args.indexOf("--");
if (terminator !== -1) {
set.rest = args.slice(terminator);
args = args.slice(0, terminator); // eslint-disable-line no-param-reassign
}
for (let i = 0; i < args.length; ++i) {
const arg = args[i];

Expand Down
6 changes: 4 additions & 2 deletions src/bin/npm-run-all/main.js
Expand Up @@ -35,7 +35,8 @@ module.exports = function npmRunAll(args, stdout, stderr) {
packageConfig,
printLabel,
printName,
silent
silent,
rest
} = parseCLIArgs(args);

return groups.reduce(
Expand All @@ -54,7 +55,8 @@ module.exports = function npmRunAll(args, stdout, stderr) {
printLabel,
printName,
packageConfig,
silent
silent,
rest
}
));
},
Expand Down
6 changes: 4 additions & 2 deletions src/bin/run-p/main.js
Expand Up @@ -35,7 +35,8 @@ module.exports = function npmRunAll(args, stdout, stderr) {
packageConfig,
printLabel,
printName,
silent
silent,
rest
} = parseCLIArgs(args, {parallel: true}, {singleMode: true});

if (patterns.length === 0) {
Expand All @@ -53,7 +54,8 @@ module.exports = function npmRunAll(args, stdout, stderr) {
printLabel,
printName,
packageConfig,
silent
silent,
rest
}
);
}
Expand Down
6 changes: 4 additions & 2 deletions src/bin/run-s/main.js
Expand Up @@ -35,7 +35,8 @@ module.exports = function npmRunAll(args, stdout, stderr) {
packageConfig,
printLabel,
printName,
silent
silent,
rest
} = parseCLIArgs(args, {parallel: false}, {singleMode: true});

if (patterns.length === 0) {
Expand All @@ -53,7 +54,8 @@ module.exports = function npmRunAll(args, stdout, stderr) {
printLabel,
printName,
packageConfig,
silent
silent,
rest
}
);
}
Expand Down
20 changes: 19 additions & 1 deletion src/lib/index.js
Expand Up @@ -11,6 +11,7 @@
//------------------------------------------------------------------------------

const Promise = require("pinkie-promise");
const shellQuote = require("shell-quote");
const matchTasks = require("./match-tasks");
const readPackageJson = require("./read-package-json");
const runTasksInParallel = require("./run-tasks-in-parallel");
Expand Down Expand Up @@ -140,7 +141,8 @@ module.exports = function npmRunAll(
silent = false,
continueOnError = false,
printLabel = false,
printName = false
printName = false,
rest = []
} = {}
) {
try {
Expand All @@ -160,6 +162,22 @@ module.exports = function npmRunAll(
prefixOptions.push(...toOverwriteOptions(packageConfig));
}

for (let i = 0, len = patterns.length; i < len; ++i) {
patterns[i] = patterns[i].replace(/[{]([*@]|\d+)[}]/g, (match, index) => {
if (index === "@") {
return shellQuote.quote(rest.slice(1));
}
if (index === "*") {
return shellQuote.quote([rest.slice(1).join(" ")]);
}
const position = parseInt(index, 10);
if (position >= 0 && position < rest.length) {
return shellQuote.quote([rest[position]]);
}
return match;
});
}

return Promise.resolve(taskList)
.then(taskList => { // eslint-disable-line no-shadow
if (taskList != null) {
Expand Down

0 comments on commit 97a1649

Please sign in to comment.