From 1b658de9685ed4466edfaf7760655141a7c24984 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 16 Oct 2023 22:03:22 -0400 Subject: [PATCH] Add JS shim --- invoke-binary.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 invoke-binary.js diff --git a/invoke-binary.js b/invoke-binary.js new file mode 100644 index 0000000..ba8c5d6 --- /dev/null +++ b/invoke-binary.js @@ -0,0 +1,39 @@ +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() +}