fix: honor original working directory when running npx installer and searching for task files
(cherry picked from commit 6a5a597fe39bc75379f54bedc1616bfab283dfa1)
This commit is contained in:
@@ -26,9 +26,12 @@ if (isNpxExecution) {
|
||||
}
|
||||
|
||||
try {
|
||||
// Honor the directory where the user invoked npx from
|
||||
const originalCwd = process.env.INIT_CWD || process.env.PWD || process.cwd();
|
||||
execSync(`node "${bmadScriptPath}" ${arguments_.join(' ')}`, {
|
||||
stdio: 'inherit',
|
||||
cwd: path.dirname(__dirname),
|
||||
cwd: originalCwd,
|
||||
env: { ...process.env, BMAD_ORIGINAL_CWD: originalCwd },
|
||||
});
|
||||
} catch (error) {
|
||||
process.exit(error.status || 1);
|
||||
|
||||
@@ -208,6 +208,7 @@ async function promptInstallation() {
|
||||
console.log(chalk.bold.magenta('🚀 Universal AI Agent Framework for Any Domain'));
|
||||
console.log(chalk.bold.blue(`✨ Installer v${version}\n`));
|
||||
|
||||
const originalCwd = process.env.INIT_CWD || process.env.PWD || process.cwd();
|
||||
const answers = {};
|
||||
|
||||
// Ask for installation directory first
|
||||
@@ -216,7 +217,7 @@ async function promptInstallation() {
|
||||
type: 'input',
|
||||
name: 'directory',
|
||||
message: 'Enter the full path to your project directory where BMad should be installed:',
|
||||
default: path.resolve('.'),
|
||||
default: originalCwd,
|
||||
validate: (input) => {
|
||||
if (!input.trim()) {
|
||||
return 'Please enter a valid project path';
|
||||
|
||||
@@ -520,15 +520,14 @@ class IdeSetup extends BaseIdeSetup {
|
||||
}
|
||||
|
||||
if (await fileManager.pathExists(tasksDir)) {
|
||||
const glob = require('glob');
|
||||
const taskFiles = glob.sync('*.md', { cwd: tasksDir });
|
||||
const taskFiles = await resourceLocator.findFiles('*.md', { cwd: tasksDir });
|
||||
allTaskIds.push(...taskFiles.map((file) => path.basename(file, '.md')));
|
||||
}
|
||||
|
||||
// Check common tasks
|
||||
const commonTasksDir = path.join(installDir, 'common', 'tasks');
|
||||
if (await fileManager.pathExists(commonTasksDir)) {
|
||||
const commonTaskFiles = glob.sync('*.md', { cwd: commonTasksDir });
|
||||
const commonTaskFiles = await resourceLocator.findFiles('*.md', { cwd: commonTasksDir });
|
||||
allTaskIds.push(...commonTaskFiles.map((file) => path.basename(file, '.md')));
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,8 @@ class Installer {
|
||||
|
||||
try {
|
||||
// Store the original CWD where npx was executed
|
||||
const originalCwd = process.env.INIT_CWD || process.env.PWD || process.cwd();
|
||||
const originalCwd =
|
||||
process.env.BMAD_ORIGINAL_CWD || process.env.INIT_CWD || process.env.PWD || process.cwd();
|
||||
|
||||
// Resolve installation directory relative to where the user ran the command
|
||||
let installDir = path.isAbsolute(config.directory)
|
||||
|
||||
Reference in New Issue
Block a user