fix: preserve user's cwd when running via npx
This commit is contained in:
parent
06dab16a75
commit
6d2b6810c2
|
|
@ -5,5 +5,34 @@
|
|||
* This file ensures proper execution when run via npx from GitHub or npm registry
|
||||
*/
|
||||
|
||||
// Simply delegate to the CLI tool
|
||||
const { execSync } = require('node:child_process');
|
||||
const path = require('node:path');
|
||||
const fs = require('node:fs');
|
||||
|
||||
// Check if we're running in an npx temporary directory
|
||||
const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
|
||||
|
||||
if (isNpxExecution) {
|
||||
// Running via npx - spawn child process to preserve user's working directory
|
||||
const args = process.argv.slice(2);
|
||||
const bmadCliPath = path.join(__dirname, 'cli', 'bmad-cli.js');
|
||||
|
||||
if (!fs.existsSync(bmadCliPath)) {
|
||||
console.error('Error: Could not find bmad-cli.js at', bmadCliPath);
|
||||
console.error('Current directory:', __dirname);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
try {
|
||||
// Execute CLI from user's working directory (process.cwd()), not npm cache
|
||||
execSync(`node "${bmadCliPath}" ${args.join(' ')}`, {
|
||||
stdio: 'inherit',
|
||||
cwd: process.cwd(), // This preserves the user's working directory
|
||||
});
|
||||
} catch (error) {
|
||||
process.exit(error.status || 1);
|
||||
}
|
||||
} else {
|
||||
// Local execution - use require
|
||||
require('./cli/bmad-cli.js');
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue