12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- module.exports = command;
- /**
- * command constructs the executable command to run in a shell including the
- * user script, the command arguments.
- *
- * @param {Object} settings Object as:
- * { execOptions: {
- * exec: String,
- * [script: String],
- * [scriptPosition: Number],
- * [execArgs: Array<string>]
- * }
- * }
- * @return {Object} an object with the node executable and the
- * arguments to the command
- */
- function command(settings) {
- var options = settings.execOptions;
- var executable = options.exec;
- var args = [];
- // after "executable" go the exec args (like --debug, etc)
- if (options.execArgs) {
- [].push.apply(args, options.execArgs);
- }
- // then goes the user's script arguments
- if (options.args) {
- [].push.apply(args, options.args);
- }
- // after the "executable" goes the user's script
- if (options.script) {
- args.splice((options.scriptPosition || 0) +
- options.execArgs.length, 0, options.script);
- }
- return {
- executable: executable,
- args: args,
- };
- }
|