@browserbox/browserbox
Version:
BrowserBox CLI - Secure, cross-platform RBI. See dosaygo.com
43 lines (37 loc) • 1.38 kB
JavaScript
// imports
import { execSync, spawn } from 'child_process';
import { join } from 'path';
import { existsSync } from 'fs';
// Main script logic
try { // to set NODE_EXTRA_CA_CERTS with mkcert CA root
const caRoot = execSync('mkcert -CAROOT', { stdio: 'pipe' }).toString().trim();
const CERT_FILE = 'rootCA.pem';
const certPath = join(caRoot, CERT_FILE);
if (existsSync(certPath)) {
process.env.NODE_EXTRA_CA_CERTS = certPath;
console.log(`Set NODE_EXTRA_CA_CERTS to ${certPath}`);
} else {
console.warn('mkcert CA root found but rootCA.pem missing. Self-signed certs may fail.');
}
} catch {
console.warn('mkcert not found or failed. If using self-signed certs, set NODE_EXTRA_CA_CERTS manually.');
}
// Spawn the main script with inherited stdio and passed args
const mainScript = join(process.cwd(), 'baby-jaguar.js');
const child = spawn('node', [...(process.env.BBX_INSPECT ? ['--inspect'] : []), mainScript, ...process.argv.slice(2)], {
stdio: 'inherit',
env: process.env,
});
try {
process.title = 'KRNL';
} catch(e) {
console.info(`Issue setting title`, e);
}
child.on('error', (error) => {
console.error(`Error: Failed to start main script - ${error.message}`);
process.exit(1);
});
child.on('exit', (code) => {
process.exit(code || 0);
});