diff --git a/prelude/bootstrap.js b/prelude/bootstrap.js --- a/prelude/bootstrap.js +++ b/prelude/bootstrap.js @@ -58,7 +58,6 @@ // set ENTRYPOINT and ARGV0 here because // they can be altered during process run -const ARGV0 = process.argv[0]; const EXECPATH = process.execPath; let ENTRYPOINT = process.argv[1]; @@ -2010,112 +2009,41 @@ } const opts = args[pos]; if (!opts.env) opts.env = { ...process.env }; - // see https://github.com/vercel/pkg/issues/897#issuecomment-1049370335 - if (opts.env.PKG_EXECPATH !== undefined) return; - opts.env.PKG_EXECPATH = EXECPATH; - } - - function startsWith2(args, index, name, impostor) { - const qsName = `"${name} `; - if (args[index].slice(0, qsName.length) === qsName) { - args[index] = `"${impostor} ${args[index].slice(qsName.length)}`; - return true; - } - const sName = `${name} `; - if (args[index].slice(0, sName.length) === sName) { - args[index] = `${impostor} ${args[index].slice(sName.length)}`; - return true; - } - if (args[index] === name) { - args[index] = impostor; - return true; - } - return false; - } - - function startsWith(args, index, name) { - const qName = `"${name}"`; - const qEXECPATH = `"${EXECPATH}"`; - const jsName = JSON.stringify(name); - const jsEXECPATH = JSON.stringify(EXECPATH); - return ( - startsWith2(args, index, name, EXECPATH) || - startsWith2(args, index, qName, qEXECPATH) || - startsWith2(args, index, jsName, jsEXECPATH) - ); - } - - function modifyLong(args, index) { - if (!args[index]) return; - return ( - startsWith(args, index, 'node') || - startsWith(args, index, ARGV0) || - startsWith(args, index, ENTRYPOINT) || - startsWith(args, index, EXECPATH) - ); - } - - function modifyShort(args) { - if (!args[0]) return; - if (!Array.isArray(args[1])) { - args.splice(1, 0, []); - } - if ( - args[0] === 'node' || - args[0] === ARGV0 || - args[0] === ENTRYPOINT || - args[0] === EXECPATH - ) { - args[0] = EXECPATH; - } else { - for (let i = 1; i < args[1].length; i += 1) { - const mbc = args[1][i - 1]; - if (mbc === '-c' || mbc === '/c') { - modifyLong(args[1], i); - } - } - } } childProcess.spawn = function spawn() { const args = cloneArgs(arguments); setOptsEnv(args); - modifyShort(args); return ancestor.spawn.apply(childProcess, args); }; childProcess.spawnSync = function spawnSync() { const args = cloneArgs(arguments); setOptsEnv(args); - modifyShort(args); return ancestor.spawnSync.apply(childProcess, args); }; childProcess.execFile = function execFile() { const args = cloneArgs(arguments); setOptsEnv(args); - modifyShort(args); return ancestor.execFile.apply(childProcess, args); }; childProcess.execFileSync = function execFileSync() { const args = cloneArgs(arguments); setOptsEnv(args); - modifyShort(args); return ancestor.execFileSync.apply(childProcess, args); }; childProcess.exec = function exec() { const args = cloneArgs(arguments); setOptsEnv(args); - modifyLong(args, 0); return ancestor.exec.apply(childProcess, args); }; childProcess.execSync = function execSync() { const args = cloneArgs(arguments); setOptsEnv(args); - modifyLong(args, 0); return ancestor.execSync.apply(childProcess, args); }; })();