You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
1 month ago
|
/**
|
||
|
* @module spawn-win32
|
||
|
* @author Toru Nagashima
|
||
|
* @copyright 2015 Toru Nagashima. All rights reserved.
|
||
|
* See LICENSE file in root directory for full license.
|
||
|
*/
|
||
|
'use strict'
|
||
|
|
||
|
// ------------------------------------------------------------------------------
|
||
|
// Requirements
|
||
|
// ------------------------------------------------------------------------------
|
||
|
|
||
|
const crossSpawn = require('cross-spawn')
|
||
|
|
||
|
// ------------------------------------------------------------------------------
|
||
|
// Helpers
|
||
|
// ------------------------------------------------------------------------------
|
||
|
|
||
|
/**
|
||
|
* Kills the new process and its sub processes forcibly.
|
||
|
* @this ChildProcess
|
||
|
* @returns {void}
|
||
|
*/
|
||
|
function kill () {
|
||
|
crossSpawn('taskkill', ['/F', '/T', '/PID', this.pid])
|
||
|
}
|
||
|
|
||
|
// ------------------------------------------------------------------------------
|
||
|
// Public Interface
|
||
|
// ------------------------------------------------------------------------------
|
||
|
|
||
|
/**
|
||
|
* Launches a new process with the given command.
|
||
|
* This is almost same as `child_process.spawn`.
|
||
|
*
|
||
|
* This returns a `ChildProcess` instance.
|
||
|
* `kill` method of the instance kills the new process and its sub processes forcibly.
|
||
|
*
|
||
|
* @param {string} command - The command to run.
|
||
|
* @param {string[]} args - List of string arguments.
|
||
|
* @param {object} options - Options.
|
||
|
* @returns {ChildProcess} A ChildProcess instance of new process.
|
||
|
* @private
|
||
|
*/
|
||
|
module.exports = function spawn (command, args, options) {
|
||
|
const child = crossSpawn(command, args, options)
|
||
|
child.kill = kill
|
||
|
|
||
|
return child
|
||
|
}
|