mirror of
https://github.com/eaglerforge/EaglerForgeInjector
synced 2025-06-05 18:41:58 -09:00
36 lines
1012 B
JavaScript
36 lines
1012 B
JavaScript
#!/usr/bin/env node
|
|
const { spawn } = require('child_process');
|
|
const path = require('path');
|
|
|
|
const os = require('os');
|
|
let cliPath = path.join(__dirname, 'cli.js');
|
|
if (!require('fs').existsSync(cliPath)) {
|
|
cliPath = path.join(__dirname, 'bin', 'cli.js');
|
|
if (!require('fs').existsSync(cliPath)) {
|
|
console.error("Error: cli.js not found. Expected it in either the same directory as this script, or in a 'bin' subdirectory.");
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
const memUsage = Math.min(16384, Math.floor(os.totalmem() / 1024 / 1024 / 2));
|
|
|
|
const nodeOptions = ["--max-old-space-size=" + memUsage];
|
|
const cliArgs = process.argv.slice(2);
|
|
const command = process.execPath;
|
|
|
|
const child = spawn(command, [...nodeOptions, cliPath, ...cliArgs], {
|
|
stdio: 'inherit',
|
|
});
|
|
|
|
child.on('error', (err) => {
|
|
console.error(err.message);
|
|
process.exit(1);
|
|
});
|
|
|
|
child.on('close', (code) => {
|
|
if (code !== 0) {
|
|
console.error(`exited with code ${code}`);
|
|
}
|
|
process.exit(code);
|
|
});
|