Spaces:
Sleeping
Sleeping
| 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, | |
| }; | |
| } | |