@probelabs/probe
Version:
Node.js wrapper for the probe code search tool
49 lines (41 loc) • 1.27 kB
JavaScript
/**
* CLI wrapper for the probe binary
*
* This script ensures the probe binary is downloaded and then executes it with the provided arguments.
* It's designed to be as lightweight as possible, essentially just passing through to the actual binary.
*/
import { spawn } from 'child_process';
import { getBinaryPath } from './utils.js';
/**
* Main function
*/
async function main() {
try {
// Get the path to the probe binary (this will download it if needed)
const binaryPath = await getBinaryPath();
// Get the arguments passed to the CLI
const args = process.argv.slice(2);
// Spawn the probe binary with the provided arguments
const probeProcess = spawn(binaryPath, args, {
stdio: 'inherit' // Pipe stdin/stdout/stderr to the parent process
});
// Handle process exit
probeProcess.on('close', (code) => {
process.exit(code);
});
// Handle process errors
probeProcess.on('error', (error) => {
console.error(`Error executing probe binary: ${error.message}`);
process.exit(1);
});
} catch (error) {
console.error(`Error: ${error.message}`);
process.exit(1);
}
}
// Execute the main function
main().catch(error => {
console.error(`Unexpected error: ${error.message}`);
process.exit(1);
});