installer doc install option for bmad method module - user can opt to not install all the docs to the destination installation path

This commit is contained in:
Brian Madison
2025-11-04 22:17:12 -06:00
parent 1f0dfe05e4
commit f8ba15c6f8
64 changed files with 67 additions and 13305 deletions

View File

@@ -491,21 +491,49 @@ class ConfigCollector {
// Handle different question types
if (item['single-select']) {
questionType = 'list';
choices = item['single-select'];
if (existingValue && choices.includes(existingValue)) {
choices = item['single-select'].map((choice) => {
// If choice is an object with label and value
if (typeof choice === 'object' && choice.label && choice.value !== undefined) {
return {
name: choice.label,
value: choice.value,
};
}
// Otherwise it's a simple string choice
return {
name: choice,
value: choice,
};
});
if (existingValue) {
defaultValue = existingValue;
}
} else if (item['multi-select']) {
questionType = 'checkbox';
choices = item['multi-select'].map((choice) => ({
name: choice,
value: choice,
checked: existingValue
? existingValue.includes(choice)
: item.default && Array.isArray(item.default)
? item.default.includes(choice)
: false,
}));
choices = item['multi-select'].map((choice) => {
// If choice is an object with label and value
if (typeof choice === 'object' && choice.label && choice.value !== undefined) {
return {
name: choice.label,
value: choice.value,
checked: existingValue
? existingValue.includes(choice.value)
: item.default && Array.isArray(item.default)
? item.default.includes(choice.value)
: false,
};
}
// Otherwise it's a simple string choice
return {
name: choice,
value: choice,
checked: existingValue
? existingValue.includes(choice)
: item.default && Array.isArray(item.default)
? item.default.includes(choice)
: false,
};
});
} else if (typeof defaultValue === 'boolean') {
questionType = 'confirm';
}

View File

@@ -267,6 +267,12 @@ class ModuleManager {
continue;
}
// Skip user documentation if install_user_docs is false
if (moduleConfig.install_user_docs === false && (file.startsWith('docs/') || file.startsWith('docs\\'))) {
console.log(chalk.dim(` Skipping user documentation: ${file}`));
continue;
}
// Skip game development content if include_game_planning is false
if (moduleConfig.include_game_planning === false) {
const shouldSkipGameDev = gameDevFiles.some((gamePath) => {