mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-29 16:14:59 +00:00
feat: v6.0.0-alpha.0 - the future is now
This commit is contained in:
14
src/modules/cis/_module-installer/install-menu-config.yaml
Normal file
14
src/modules/cis/_module-installer/install-menu-config.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
# BMAD™ Creative Intelligence Suite Configuration
|
||||
|
||||
code: cis
|
||||
name: "CIS: Creative Innovation Suite"
|
||||
default_selected: false # This module will not be selected by default for new installations
|
||||
|
||||
prompt:
|
||||
- "Thank you for choosing the BMAD™ Creative Intelligence Suite, an early beta release with much more planned!"
|
||||
- "With this BMAD™ Creative Intelligence Suite Configuration, remember that all paths are relative to project root, with no leading slash."
|
||||
# Variables from Core Config inserted:
|
||||
|
||||
## user_name
|
||||
## communication_language
|
||||
## output_folder
|
||||
92
src/modules/cis/_module-installer/installer.js
Normal file
92
src/modules/cis/_module-installer/installer.js
Normal file
@@ -0,0 +1,92 @@
|
||||
const fs = require('fs-extra');
|
||||
const path = require('node:path');
|
||||
const chalk = require('chalk');
|
||||
|
||||
/**
|
||||
* CIS Module Installer
|
||||
* Standard module installer function that executes after IDE installations
|
||||
*
|
||||
* @param {Object} options - Installation options
|
||||
* @param {string} options.projectRoot - The root directory of the target project
|
||||
* @param {Object} options.config - Module configuration from install-menu-config.yaml
|
||||
* @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
|
||||
* @param {Object} options.logger - Logger instance for output
|
||||
* @returns {Promise<boolean>} - Success status
|
||||
*/
|
||||
async function install(options) {
|
||||
const { projectRoot, config, installedIDEs, logger } = options;
|
||||
|
||||
try {
|
||||
logger.log(chalk.blue('🎨 Installing CIS Module...'));
|
||||
|
||||
// Create output directory if configured
|
||||
if (config['output_folder']) {
|
||||
// Strip {project-root}/ prefix if present
|
||||
const outputConfig = config['output_folder'].replace('{project-root}/', '');
|
||||
const outputPath = path.join(projectRoot, outputConfig);
|
||||
if (!(await fs.pathExists(outputPath))) {
|
||||
logger.log(chalk.yellow(`Creating CIS output directory: ${outputConfig}`));
|
||||
await fs.ensureDir(outputPath);
|
||||
|
||||
// Add any default CIS templates or assets here
|
||||
const templatesSource = path.join(__dirname, 'assets');
|
||||
const templateFiles = await fs.readdir(templatesSource).catch(() => []);
|
||||
|
||||
for (const file of templateFiles) {
|
||||
const source = path.join(templatesSource, file);
|
||||
const dest = path.join(outputPath, file);
|
||||
|
||||
if (!(await fs.pathExists(dest))) {
|
||||
await fs.copy(source, dest);
|
||||
logger.log(chalk.green(`✓ Added ${file}`));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Handle IDE-specific configurations if needed
|
||||
if (installedIDEs && installedIDEs.length > 0) {
|
||||
logger.log(chalk.cyan(`Configuring CIS for IDEs: ${installedIDEs.join(', ')}`));
|
||||
|
||||
// Add any IDE-specific CIS configurations here
|
||||
for (const ide of installedIDEs) {
|
||||
await configureForIDE(ide, projectRoot, config, logger);
|
||||
}
|
||||
}
|
||||
|
||||
logger.log(chalk.green('✓ CIS Module installation complete'));
|
||||
return true;
|
||||
} catch (error) {
|
||||
logger.error(chalk.red(`Error installing CIS module: ${error.message}`));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure CIS module for specific IDE
|
||||
* @private
|
||||
*/
|
||||
async function configureForIDE(ide) {
|
||||
// Add IDE-specific configurations here
|
||||
switch (ide) {
|
||||
case 'claude-code': {
|
||||
// Claude Code specific CIS configurations
|
||||
break;
|
||||
}
|
||||
case 'cursor': {
|
||||
// Cursor specific CIS configurations
|
||||
break;
|
||||
}
|
||||
case 'windsurf': {
|
||||
// Windsurf specific CIS configurations
|
||||
break;
|
||||
}
|
||||
// Add more IDEs as needed
|
||||
default: {
|
||||
// No specific configuration needed
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { install };
|
||||
Reference in New Issue
Block a user