diff options
Diffstat (limited to 'server/.yarn/unplugged/nodemon-npm-2.0.19-5d6fa595c6/node_modules/nodemon/lib/spawn.js')
-rw-r--r-- | server/.yarn/unplugged/nodemon-npm-2.0.19-5d6fa595c6/node_modules/nodemon/lib/spawn.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/server/.yarn/unplugged/nodemon-npm-2.0.19-5d6fa595c6/node_modules/nodemon/lib/spawn.js b/server/.yarn/unplugged/nodemon-npm-2.0.19-5d6fa595c6/node_modules/nodemon/lib/spawn.js new file mode 100644 index 0000000..9aa4f80 --- /dev/null +++ b/server/.yarn/unplugged/nodemon-npm-2.0.19-5d6fa595c6/node_modules/nodemon/lib/spawn.js @@ -0,0 +1,73 @@ +const path = require('path'); +const utils = require('./utils'); +const merge = utils.merge; +const bus = utils.bus; +const spawn = require('child_process').spawn; + +module.exports = function spawnCommand(command, config, eventArgs) { + var stdio = ['pipe', 'pipe', 'pipe']; + + if (config.options.stdout) { + stdio = ['pipe', process.stdout, process.stderr]; + } + + const env = merge(process.env, { FILENAME: eventArgs[0] }); + + var sh = 'sh'; + var shFlag = '-c'; + var spawnOptions = { + env: merge(config.options.execOptions.env, env), + stdio: stdio, + }; + + if (!Array.isArray(command)) { + command = [command]; + } + + if (utils.isWindows) { + // if the exec includes a forward slash, reverse it for windows compat + // but *only* apply to the first command, and none of the arguments. + // ref #1251 and #1236 + command = command.map(executable => { + if (executable.indexOf('/') === -1) { + return executable; + } + + return executable.split(' ').map((e, i) => { + if (i === 0) { + return path.normalize(e); + } + return e; + }).join(' '); + }); + // taken from npm's cli: https://git.io/vNFD4 + sh = process.env.comspec || 'cmd'; + shFlag = '/d /s /c'; + spawnOptions.windowsVerbatimArguments = true; + } + + const args = command.join(' '); + const child = spawn(sh, [shFlag, args], spawnOptions); + + if (config.required) { + var emit = { + stdout: function (data) { + bus.emit('stdout', data); + }, + stderr: function (data) { + bus.emit('stderr', data); + }, + }; + + // now work out what to bind to... + if (config.options.stdout) { + child.on('stdout', emit.stdout).on('stderr', emit.stderr); + } else { + child.stdout.on('data', emit.stdout); + child.stderr.on('data', emit.stderr); + + bus.stdout = child.stdout; + bus.stderr = child.stderr; + } + } +}; |