blob: 85d67ddf90a6718cdb58e4132fff337d3b45804d [file] [log] [blame]
const patchfs = require('./fs.cjs').patcher
const {
JS_BINARY__FS_PATCH_ROOTS,
JS_BINARY__LOG_DEBUG,
JS_BINARY__LOG_PREFIX,
JS_BINARY__NODE_WRAPPER,
JS_BINARY__PATCH_NODE_FS,
} = process.env
// Keep a count of how many times these patches are applied; this should reflect the depth
// of child processes in the default case where a child process inherits process.env since
// child processes need to re-apply the patches. This is here primarily for testing but it
// could also be useful for debugging.
if (!process.env.JS_BINARY__NODE_PATCHES_DEPTH) {
process.env.JS_BINARY__NODE_PATCHES_DEPTH = '.'
} else {
process.env.JS_BINARY__NODE_PATCHES_DEPTH += '.'
}
// subprocess patch
if (process.platform == 'win32') {
// FIXME: need to make an exe, or run in a shell so we can use .bat
} else {
if (JS_BINARY__LOG_DEBUG) {
console.error(
`DEBUG: ${JS_BINARY__LOG_PREFIX}: overriding process.execPath to node wrapper path ${JS_BINARY__NODE_WRAPPER}`
)
}
process.argv[0] = process.execPath = JS_BINARY__NODE_WRAPPER
}
// fs patches
if (
JS_BINARY__PATCH_NODE_FS &&
JS_BINARY__PATCH_NODE_FS != '0' &&
JS_BINARY__FS_PATCH_ROOTS
) {
const roots = JS_BINARY__FS_PATCH_ROOTS.split(':')
if (JS_BINARY__LOG_DEBUG) {
console.error(
`DEBUG: ${JS_BINARY__LOG_PREFIX}: node fs patches will be applied with roots: ${roots}`
)
}
patchfs(roots)
}