oac.js 991 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env node
  2. 'use strict';
  3. const { execFileSync } = require('child_process');
  4. const path = require('path');
  5. const fs = require('fs');
  6. const cliDist = path.join(__dirname, '..', 'packages', 'cli', 'dist', 'index.js');
  7. const packageRoot = path.join(__dirname, '..');
  8. if (!fs.existsSync(cliDist)) {
  9. console.error('Error: OAC CLI not built yet. Run: npm run build -w packages/cli');
  10. process.exit(1);
  11. }
  12. // On Windows, npm-installed executables are .cmd wrappers — use exact name to resolve them
  13. const isWindows = process.platform === 'win32';
  14. const bunExecutable = isWindows ? 'bun.cmd' : 'bun';
  15. try {
  16. execFileSync(bunExecutable, [cliDist, ...process.argv.slice(2)], {
  17. stdio: 'inherit',
  18. env: { ...process.env, OAC_PACKAGE_ROOT: packageRoot },
  19. shell: false,
  20. });
  21. } catch (err) {
  22. if (err.code === 'ENOENT') {
  23. console.error('Error: Bun is required to run OAC CLI. Install from https://bun.sh');
  24. process.exit(1);
  25. }
  26. process.exitCode = err.status ?? 1;
  27. }