feat(expansion-packs): enhance install script for C4 Architecture expansion pack
- Added checks for Windows line endings and provided automatic conversion to Unix format. - Included instructions for users running the script in PowerShell to handle potential line ending issues. - Updated directory checks to ensure the script is executed from the correct location and that the BMAD-METHOD root exists. - Enhanced file copying process to create necessary BMAD-METHOD directories and copy relevant expansion pack files accordingly.
This commit is contained in:
parent
2e5bfbfcec
commit
8ea6e3f273
|
|
@ -0,0 +1,151 @@
|
|||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo.
|
||||
echo 🏛️ BMAD C4 Architecture Expansion Pack Installer
|
||||
echo ==================================================
|
||||
echo.
|
||||
|
||||
REM Check if we're in the right directory
|
||||
if not exist "agents\c4-architect.md" (
|
||||
echo ❌ Error: Please run this script from the bmad-c4-architecture directory
|
||||
echo Current directory: %CD%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM Check if BMAD-METHOD root exists
|
||||
if not exist "..\..\bmad-core" (
|
||||
echo ❌ Error: BMAD-METHOD root directory not found
|
||||
echo Expected: ..\..\bmad-core
|
||||
echo Current directory: %CD%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo 📁 Installing C4 Architecture Expansion Pack...
|
||||
echo.
|
||||
|
||||
REM Create directories if they don't exist
|
||||
if not exist "..\..\bmad-core\agents" mkdir "..\..\bmad-core\agents"
|
||||
if not exist "..\..\bmad-core\tasks" mkdir "..\..\bmad-core\tasks"
|
||||
if not exist "..\..\bmad-core\templates" mkdir "..\..\bmad-core\templates"
|
||||
if not exist "..\..\bmad-core\data" mkdir "..\..\bmad-core\data"
|
||||
if not exist "..\..\bmad-core\checklists" mkdir "..\..\bmad-core\checklists"
|
||||
if not exist "..\..\bmad-core\agent-teams" mkdir "..\..\bmad-core\agent-teams"
|
||||
if not exist "..\..\bmad-core\workflows" mkdir "..\..\bmad-core\workflows"
|
||||
|
||||
REM Copy agent files
|
||||
echo 📄 Copying agent files...
|
||||
copy "agents\c4-architect.md" "..\..\bmad-core\agents\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy agent files
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM Copy task files
|
||||
echo 📄 Copying task files...
|
||||
for %%f in (tasks\*.md) do (
|
||||
copy "%%f" "..\..\bmad-core\tasks\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy task file: %%f
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM Copy template files
|
||||
echo 📄 Copying template files...
|
||||
for %%f in (templates\*.yaml) do (
|
||||
copy "%%f" "..\..\bmad-core\templates\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy template file: %%f
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM Copy data files
|
||||
echo 📄 Copying data files...
|
||||
for %%f in (data\*.md) do (
|
||||
copy "%%f" "..\..\bmad-core\data\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy data file: %%f
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM Copy checklist files
|
||||
echo 📄 Copying checklist files...
|
||||
for %%f in (checklists\*.md) do (
|
||||
copy "%%f" "..\..\bmad-core\checklists\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy checklist file: %%f
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM Copy agent team files
|
||||
echo 📄 Copying agent team files...
|
||||
for %%f in (agent-teams\*.yaml) do (
|
||||
copy "%%f" "..\..\bmad-core\agent-teams\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy agent team file: %%f
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM Copy workflow files
|
||||
echo 📄 Copying workflow files...
|
||||
for %%f in (workflows\*.yaml) do (
|
||||
copy "%%f" "..\..\bmad-core\workflows\" >nul
|
||||
if errorlevel 1 (
|
||||
echo ❌ Failed to copy workflow file: %%f
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ✅ Installation completed successfully!
|
||||
echo.
|
||||
echo 🎯 What's been installed:
|
||||
echo - C4 Architect Agent (Simon)
|
||||
echo - 9 specialized tasks for C4 model creation
|
||||
echo - 4 interactive templates
|
||||
echo - C4 model guidelines and best practices
|
||||
echo - Quality assurance checklists
|
||||
echo - 3 agent team configurations
|
||||
echo - 2 specialized workflows
|
||||
echo.
|
||||
echo 🚀 Next steps:
|
||||
echo 1. Go back to BMAD-METHOD root: cd ..\..
|
||||
echo 2. Test the agent: node tools/cli.js agent c4-architect
|
||||
echo 3. Set up Structurizr Lite for diagram visualization
|
||||
echo.
|
||||
echo 📚 For detailed usage instructions, see:
|
||||
echo - expansion-packs/bmad-c4-architecture/README.md
|
||||
echo - expansion-packs/bmad-c4-architecture/utils/structurizr-setup.md
|
||||
echo.
|
||||
|
||||
REM Check for Docker
|
||||
echo 🔍 Checking for Docker...
|
||||
docker --version >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo ⚠️ Docker not found. You can install Docker Desktop or use Java 17+ instead.
|
||||
echo Visit: https://www.docker.com/products/docker-desktop/
|
||||
) else (
|
||||
echo ✅ Docker found - recommended for Structurizr Lite
|
||||
echo 💡 To start Structurizr Lite with Docker:
|
||||
echo docker pull structurizr/lite
|
||||
echo docker run -it --rm -p 8080:8080 -v C:\structurizr:/usr/local/structurizr structurizr/lite
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 🏛️ C4 Architecture Expansion Pack is ready to use!
|
||||
echo.
|
||||
pause
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
# BMAD C4 Architecture Expansion Pack Installation Script for PowerShell
|
||||
# This script handles line ending conversion and runs the bash installer
|
||||
|
||||
Write-Host "🏛️ BMAD C4 Architecture Expansion Pack Installer (PowerShell)" -ForegroundColor Blue
|
||||
Write-Host "================================================================" -ForegroundColor Blue
|
||||
Write-Host ""
|
||||
|
||||
# Check if we're in the right directory
|
||||
if (-not (Test-Path "agents\c4-architect.md")) {
|
||||
Write-Host "❌ Error: Please run this script from the bmad-c4-architecture directory" -ForegroundColor Red
|
||||
Write-Host "Current directory: $PWD" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Check if BMAD-METHOD root exists
|
||||
if (-not (Test-Path "..\..\bmad-core")) {
|
||||
Write-Host "❌ Error: BMAD-METHOD root directory not found" -ForegroundColor Red
|
||||
Write-Host "Expected: ..\..\bmad-core" -ForegroundColor Red
|
||||
Write-Host "Current directory: $PWD" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Fix line endings in install.sh
|
||||
Write-Host "🔧 Fixing line endings in install.sh..." -ForegroundColor Blue
|
||||
try {
|
||||
(Get-Content install.sh -Raw) -replace "`r`n", "`n" | Set-Content install.sh -NoNewline
|
||||
Write-Host "✅ Line endings converted successfully" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "⚠️ Could not convert line endings: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# Check if bash is available
|
||||
if (Get-Command bash -ErrorAction SilentlyContinue) {
|
||||
Write-Host "🚀 Running bash installer..." -ForegroundColor Blue
|
||||
bash install.sh
|
||||
} else {
|
||||
Write-Host "❌ Bash not found. Please install Git for Windows or WSL" -ForegroundColor Red
|
||||
Write-Host "Alternative: Use the Windows batch file (install.bat)" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "🏛️ Installation completed!" -ForegroundColor Green
|
||||
Write-Host "Next steps:" -ForegroundColor Blue
|
||||
Write-Host " 1. Go back to BMAD-METHOD root: cd ..\.." -ForegroundColor White
|
||||
Write-Host " 2. Test the agent: node tools/cli.js agent c4-architect" -ForegroundColor White
|
||||
Write-Host " 3. Set up Structurizr Lite for diagram visualization" -ForegroundColor White
|
||||
|
|
@ -12,6 +12,21 @@ YELLOW='\033[1;33m'
|
|||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Check for Windows line endings and fix them
|
||||
if [ -f "install.sh" ] && file install.sh | grep -q "CRLF"; then
|
||||
echo -e "${BLUE}🔧 Detected Windows line endings - fixing...${NC}"
|
||||
# Convert Windows line endings to Unix line endings using sed
|
||||
sed -i 's/\r$//' install.sh
|
||||
echo -e "${GREEN}✅ Line endings converted successfully${NC}"
|
||||
fi
|
||||
|
||||
# Check if we're running in PowerShell and provide instructions
|
||||
if [ -n "$PSVersionTable" ] || [ -n "$POWERSHELL_DISTRIBUTION_CHANNEL" ]; then
|
||||
echo -e "${YELLOW}⚠️ PowerShell detected. If you get line ending errors, run:${NC}"
|
||||
echo -e "${BLUE} (Get-Content install.sh -Raw) -replace \"\`r\`n\", \"\`n\" | Set-Content install.sh -NoNewline${NC}"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Configuration
|
||||
EXPANSION_PACK_NAME="bmad-c4-architecture"
|
||||
TARGET_DIR=".bmad-c4-architecture"
|
||||
|
|
@ -20,10 +35,18 @@ SOURCE_DIR="$(dirname "$0")"
|
|||
echo -e "${BLUE}🏛️ BMAD C4 Architecture Expansion Pack Installer${NC}"
|
||||
echo "=================================================="
|
||||
|
||||
# Check if we're in a BMAD-METHOD project
|
||||
if [ ! -f "package.json" ] || ! grep -q "bmad-method" package.json; then
|
||||
echo -e "${RED}❌ Error: This doesn't appear to be a BMAD-METHOD project.${NC}"
|
||||
echo "Please run this script from the root of a BMAD-METHOD project."
|
||||
# Check if we're in the expansion pack directory and BMAD-METHOD root exists
|
||||
if [ ! -f "agents/c4-architect.md" ]; then
|
||||
echo -e "${RED}❌ Error: Please run this script from the bmad-c4-architecture directory${NC}"
|
||||
echo "Current directory: $(pwd)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if BMAD-METHOD root exists
|
||||
if [ ! -d "../../bmad-core" ]; then
|
||||
echo -e "${RED}❌ Error: BMAD-METHOD root directory not found${NC}"
|
||||
echo "Expected: ../../bmad-core"
|
||||
echo "Current directory: $(pwd)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
@ -40,16 +63,25 @@ if [ -d "$TARGET_DIR" ]; then
|
|||
rm -rf "$TARGET_DIR"
|
||||
fi
|
||||
|
||||
# Create target directory
|
||||
echo -e "${BLUE}📁 Creating target directory...${NC}"
|
||||
mkdir -p "$TARGET_DIR"
|
||||
# Create BMAD-METHOD directories if they don't exist
|
||||
echo -e "${BLUE}📁 Creating BMAD-METHOD directories...${NC}"
|
||||
mkdir -p "../../bmad-core/agents"
|
||||
mkdir -p "../../bmad-core/tasks"
|
||||
mkdir -p "../../bmad-core/templates"
|
||||
mkdir -p "../../bmad-core/data"
|
||||
mkdir -p "../../bmad-core/checklists"
|
||||
mkdir -p "../../bmad-core/agent-teams"
|
||||
mkdir -p "../../bmad-core/workflows"
|
||||
|
||||
# Copy expansion pack files
|
||||
echo -e "${BLUE}📋 Copying expansion pack files...${NC}"
|
||||
cp -r "$SOURCE_DIR"/* "$TARGET_DIR/"
|
||||
|
||||
# Remove the install script from target
|
||||
rm -f "$TARGET_DIR/install.sh"
|
||||
# Copy expansion pack files to BMAD-METHOD
|
||||
echo -e "${BLUE}📋 Copying expansion pack files to BMAD-METHOD...${NC}"
|
||||
cp agents/*.md "../../bmad-core/agents/"
|
||||
cp tasks/*.md "../../bmad-core/tasks/"
|
||||
cp templates/*.yaml "../../bmad-core/templates/"
|
||||
cp data/*.md "../../bmad-core/data/"
|
||||
cp checklists/*.md "../../bmad-core/checklists/"
|
||||
cp agent-teams/*.yaml "../../bmad-core/agent-teams/"
|
||||
cp workflows/*.yaml "../../bmad-core/workflows/"
|
||||
|
||||
# Update core configuration
|
||||
echo -e "${BLUE}⚙️ Updating core configuration...${NC}"
|
||||
|
|
|
|||
Loading…
Reference in New Issue