summaryrefslogtreecommitdiff
path: root/server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/process-exec-sync.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/process-exec-sync.js')
-rw-r--r--server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/process-exec-sync.js140
1 files changed, 140 insertions, 0 deletions
diff --git a/server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/process-exec-sync.js b/server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/process-exec-sync.js
new file mode 100644
index 0000000..21763bc
--- /dev/null
+++ b/server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/process-exec-sync.js
@@ -0,0 +1,140 @@
+'use strict'
+
+const fs = require('graceful-fs')
+const childProcess = require('child_process')
+
+function startsWith (str, search, pos) {
+ if (String.prototype.startsWith) {
+ return str.startsWith(search, pos)
+ }
+
+ return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search
+}
+
+function processExecSync (file, args, options) {
+ var child, error, timeout, tmpdir, command
+ command = makeCommand(file, args)
+
+ /*
+ this function emulates child_process.execSync for legacy node <= 0.10.x
+ derived from https://github.com/gvarsanyi/sync-exec/blob/master/js/sync-exec.js
+ */
+
+ options = options || {}
+ // init timeout
+ timeout = Date.now() + options.timeout
+ // init tmpdir
+ var osTempBase = '/tmp'
+ var os = determineOS()
+ osTempBase = '/tmp'
+
+ if (process.env.TMP) {
+ osTempBase = process.env.TMP
+ }
+
+ if (osTempBase[osTempBase.length - 1] !== '/') {
+ osTempBase += '/'
+ }
+
+ tmpdir = osTempBase + 'processExecSync.' + Date.now() + Math.random()
+ fs.mkdirSync(tmpdir)
+
+ // init command
+ if (os === 'linux') {
+ command = '(' + command + ' > ' + tmpdir + '/stdout 2> ' + tmpdir +
+ '/stderr); echo $? > ' + tmpdir + '/status'
+ } else {
+ command = '(' + command + ' > ' + tmpdir + '/stdout 2> ' + tmpdir +
+ '/stderr) | echo %errorlevel% > ' + tmpdir + '/status | exit'
+ }
+
+ // init child
+ child = childProcess.exec(command, options)
+
+ var maxTry = 100000 // increases the test time by 6 seconds on win-2016-node-0.10
+ var tryCount = 0
+ while (tryCount < maxTry) {
+ try {
+ var x = fs.readFileSync(tmpdir + '/status')
+ if (x.toString() === '0') {
+ break
+ }
+ } catch (ignore) {}
+ tryCount++
+ if (Date.now() > timeout) {
+ error = child
+ break
+ }
+ }
+
+ ['stdout', 'stderr', 'status'].forEach(function (file) {
+ child[file] = fs.readFileSync(tmpdir + '/' + file, options.encoding)
+ setTimeout(unlinkFile, 500, tmpdir + '/' + file)
+ })
+
+ child.status = Number(child.status)
+ if (child.status !== 0) {
+ error = child
+ }
+
+ try {
+ fs.rmdirSync(tmpdir)
+ } catch (ignore) {}
+ if (error) {
+ throw error
+ }
+ return child.stdout
+}
+
+function makeCommand (file, args) {
+ var command, quote
+ command = file
+ if (args.length > 0) {
+ for (var i in args) {
+ command = command + ' '
+ if (args[i][0] === '-') {
+ command = command + args[i]
+ } else {
+ if (!quote) {
+ command = command + '"'
+ quote = true
+ }
+ command = command + args[i]
+ if (quote) {
+ if (args.length === (parseInt(i) + 1)) {
+ command = command + '"'
+ }
+ }
+ }
+ }
+ }
+ return command
+}
+
+function determineOS () {
+ var os = ''
+ var tmpVar = ''
+ if (process.env.OSTYPE) {
+ tmpVar = process.env.OSTYPE
+ } else if (process.env.OS) {
+ tmpVar = process.env.OS
+ } else {
+ // default is linux
+ tmpVar = 'linux'
+ }
+
+ if (startsWith(tmpVar, 'linux')) {
+ os = 'linux'
+ }
+ if (startsWith(tmpVar, 'win')) {
+ os = 'win'
+ }
+
+ return os
+}
+
+function unlinkFile (file) {
+ fs.unlinkSync(file)
+}
+
+module.exports = processExecSync