const childProcess = require('child_process') const os = require('os') const process = require('process') function chooseBinary() { const platform = os.platform() const arch = os.arch() if (platform === 'linux' && arch === 'x64') { return `linux-amd64` } if (platform === 'linux' && arch === 'arm64') { return `linux-arm64` } if (platform === 'windows' && arch === 'x64') { return `windows-amd64.exe` } if (platform === 'windows' && arch === 'arm64') { return `windows-arm64.exe` } console.error(`Unsupported platform (${platform}) and architecture (${arch})`) process.exit(1) } function main() { const binary = chooseBinary() const mainScript = `${__dirname}/${binary}` const spawnSyncReturns = childProcess.spawnSync(mainScript, { stdio: 'inherit' }) const status = spawnSyncReturns.status if (typeof status === 'number') { process.exit(status) } process.exit(1) } if (require.main === module) { main() }