Use nbin in forked processes
This commit is contained in:
parent
6156eb9ff4
commit
3ca90a5f89
10
main.js
10
main.js
@ -1,11 +1 @@
|
|||||||
try {
|
|
||||||
const nbin = require("nbin");
|
|
||||||
const path = require("path");
|
|
||||||
const rootPath = path.resolve(__dirname, "../../..");
|
|
||||||
console.log("Shimming", rootPath);
|
|
||||||
nbin.shimNativeFs(rootPath);
|
|
||||||
} catch (error) {
|
|
||||||
console.log("Not in the binary");
|
|
||||||
}
|
|
||||||
|
|
||||||
require("../../bootstrap-amd").load("vs/server/cli");
|
require("../../bootstrap-amd").load("vs/server/cli");
|
||||||
|
9
scripts/nbin-loader.js
Normal file
9
scripts/nbin-loader.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
if (!global.NBIN_LOADED) {
|
||||||
|
try {
|
||||||
|
const nbin = require("nbin");
|
||||||
|
nbin.shimNativeFs("{{ROOT_PATH}}");
|
||||||
|
global.NBIN_LOADED = true;
|
||||||
|
} catch (error) {
|
||||||
|
console.log("Not in the binary");
|
||||||
|
}
|
||||||
|
}
|
@ -41,6 +41,18 @@ function copy-server() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Prepend the nbin loading code which allows the code to find files within
|
||||||
|
# the binary.
|
||||||
|
function prepend-loader() {
|
||||||
|
local filePath="${codeServerBuildPath}/${1}" ; shift
|
||||||
|
cat "${rootPath}/scripts/nbin-loader.js" "${filePath}" > "${filePath}.temp"
|
||||||
|
mv "${filePath}.temp" "${filePath}"
|
||||||
|
# Using : as the delimiter so the escaping here is easier to read.
|
||||||
|
# ${parameter/pattern/string}, so the pattern is /: (if the pattern starts
|
||||||
|
# with / it matches all instances) and the string is \\: (results in \:).
|
||||||
|
sed -i "s:{{ROOT_PATH}}:${codeServerBuildPath//:/\\:}:g" "${filePath}"
|
||||||
|
}
|
||||||
|
|
||||||
# Copy code-server into VS Code then build it.
|
# Copy code-server into VS Code then build it.
|
||||||
function build-code-server() {
|
function build-code-server() {
|
||||||
copy-server
|
copy-server
|
||||||
@ -62,6 +74,9 @@ function build-code-server() {
|
|||||||
rm -rf "${codeServerBuildPath}/out/vs/server/node_modules"
|
rm -rf "${codeServerBuildPath}/out/vs/server/node_modules"
|
||||||
cp -r "${vscodeSourcePath}/remote/node_modules" "${codeServerBuildPath}"
|
cp -r "${vscodeSourcePath}/remote/node_modules" "${codeServerBuildPath}"
|
||||||
|
|
||||||
|
prepend-loader "out/vs/server/main.js"
|
||||||
|
prepend-loader "out/bootstrap-fork.js"
|
||||||
|
|
||||||
log "Final build: ${codeServerBuildPath}"
|
log "Final build: ${codeServerBuildPath}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user