preserve execute bit on bundled macOS node binary

This commit is contained in:
2026-09-04 21:34:41 -07:00
parent b81a4e044b
commit 4c708ad97c
2 changed files with 23 additions and 2 deletions

View File

@@ -295,11 +295,18 @@ function ensureBundledNode() {
try {
execSync(`tar -xzf node.tar.gz ${tarName}/bin/node`, { cwd: binDir });
fs.renameSync(path.join(binDir, tarName, 'bin', 'node'), path.join(binDir, 'node'));
const extractedNode = path.join(binDir, tarName, 'bin', 'node');
const finalNode = path.join(binDir, 'node');
fs.renameSync(extractedNode, finalNode);
fs.rmSync(path.join(binDir, tarName), { recursive: true, force: true });
fs.unlinkSync(tarPath);
execSync(`chmod +x "${path.join(binDir, 'node')}"`, { cwd: binDir });
fs.chmodSync(finalNode, 0o755);
try {
execSync(`xattr -d com.apple.quarantine "${finalNode}"`);
} catch (_) { }
fs.writeFileSync(versionMarker, nodeVersion, 'utf8');
resolve();