#!/bin/bash
# Update the claude-code-workflows plugins

# Check if the 'claude' command is available
if ! command -v claude >/dev/null 2>&1; then
    echo "Error: 'claude' command not found. Please ensure it is installed and in your PATH."
    exit 1
fi

# Update marketplace definition
echo "Updating claude-code-workflows marketplace..."
claude plugin marketplace update claude-code-workflows || {
    echo "Error: Failed to update marketplace."
    exit 1
}

# List of plugins to manage
plugins=(
    "agent-orchestration@claude-code-workflows"
    "application-performance@claude-code-workflows"
    "backend-development@claude-code-workflows"
    "cloud-infrastructure@claude-code-workflows"
    "code-refactoring@claude-code-workflows"
    "code-review-ai@claude-code-workflows"
    "codebase-cleanup@claude-code-workflows"
    "comprehensive-review@claude-code-workflows"
    "context-management@claude-code-workflows"
    "data-engineering@claude-code-workflows"
    "data-validation-suite@claude-code-workflows"
    "database-cloud-optimization@claude-code-workflows"
    "database-design@claude-code-workflows"
    "debugging-toolkit@claude-code-workflows"
    "deployment-validation@claude-code-workflows"
    "distributed-debugging@claude-code-workflows"
    "documentation-generation@claude-code-workflows"
    "error-debugging@claude-code-workflows"
    "error-diagnostics@claude-code-workflows"
    "full-stack-orchestration@claude-code-workflows"
    "git-pr-workflows@claude-code-workflows"
    "javascript-typescript@claude-code-workflows"
    "observability-monitoring@claude-code-workflows"
    "performance-testing-review@claude-code-workflows"
    "python-development@claude-code-workflows"
    "quantitative-trading@claude-code-workflows"
    "tdd-workflows@claude-code-workflows"
    "unit-testing@claude-code-workflows"
)

# Remove all plugins
echo "Uninstalling plugins..."
for plugin in "${plugins[@]}"; do
    echo "Uninstalling $plugin..."
    claude plugin uninstall "$plugin" || {
        echo "Warning: Failed to uninstall $plugin. Continuing..."
    }
done

# Reinstall all plugins
echo "Installing plugins..."
for plugin in "${plugins[@]}"; do
    echo "Installing $plugin..."
    claude plugin install "$plugin" || {
        echo "Error: Failed to install $plugin."
        exit 1
    }
done

echo "Plugin update process completed successfully."