Files
boshu2__agentops/scripts/dogfood-setup.sh
T
2026-02-21 19:41:50 -05:00

116 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
# Set up dogfooding - use your own plugins instead of marketplace
#
# This:
# 1. Backs up ~/.claude/skills/
# 2. Installs your plugins to ~/.claude/plugins/
# 3. Updates settings.json to use local plugins
#
# Usage: ./scripts/dogfood-setup.sh [--revert]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
CLAUDE_DIR="$HOME/.claude"
BACKUP_DIR="$CLAUDE_DIR/skills.backup.$(date +%Y%m%d)"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Revert mode
if [[ "${1:-}" == "--revert" ]]; then
echo -e "${BLUE}Reverting to original setup...${NC}"
# Find most recent backup
latest_backup=$(ls -d "$CLAUDE_DIR"/skills.backup.* 2>/dev/null | tail -1)
if [[ -n "$latest_backup" ]] && [[ -d "$latest_backup" ]]; then
rm -rf "$CLAUDE_DIR/skills"
mv "$latest_backup" "$CLAUDE_DIR/skills"
echo -e "${GREEN}✓${NC} Restored skills from $latest_backup"
else
echo -e "${RED}No backup found${NC}"
exit 1
fi
# Remove installed plugins
for plugin in "$CLAUDE_DIR/plugins"/*/; do
name=$(basename "$plugin")
if [[ -f "$REPO_ROOT/plugins/$name/.claude-plugin/plugin.json" ]]; then
rm -rf "$plugin"
echo -e "${GREEN}✓${NC} Removed $name from plugins/"
fi
done
echo -e "${GREEN}Reverted to original setup${NC}"
exit 0
fi
echo -e "${BLUE}═══════════════════════════════════════════════════════${NC}"
echo -e "${BLUE} AgentOps Dogfood Setup${NC}"
echo -e "${BLUE}═══════════════════════════════════════════════════════${NC}"
echo ""
# Step 1: Validate all plugins first
echo -e "${BLUE}Step 1: Validating plugins...${NC}"
if ! "$REPO_ROOT/scripts/validate-local.sh" > /dev/null 2>&1; then
echo -e "${RED}Plugin validation failed. Fix issues first.${NC}"
"$REPO_ROOT/scripts/validate-local.sh"
exit 1
fi
echo -e "${GREEN}✓${NC} All plugins valid"
echo ""
# Step 2: Backup current skills
echo -e "${BLUE}Step 2: Backing up ~/.claude/skills...${NC}"
if [[ -d "$CLAUDE_DIR/skills" ]] && [[ ! -L "$CLAUDE_DIR/skills" ]]; then
if [[ -d "$BACKUP_DIR" ]]; then
echo -e "${YELLOW}!${NC} Backup already exists: $BACKUP_DIR"
else
cp -r "$CLAUDE_DIR/skills" "$BACKUP_DIR"
echo -e "${GREEN}✓${NC} Backed up to $BACKUP_DIR"
fi
else
echo -e "${YELLOW}!${NC} No skills directory to backup"
fi
echo ""
# Step 3: Install plugins
echo -e "${BLUE}Step 3: Installing plugins to ~/.claude/plugins/...${NC}"
mkdir -p "$CLAUDE_DIR/plugins"
installed=0
for plugin_dir in "$REPO_ROOT/plugins"/*/; do
name=$(basename "$plugin_dir")
dst="$CLAUDE_DIR/plugins/$name"
# Remove old installation
[[ -d "$dst" ]] && rm -rf "$dst"
# Copy plugin
cp -r "$plugin_dir" "$dst"
echo -e "${GREEN}✓${NC} Installed $name"
installed=$((installed + 1))
done
echo ""
# Step 4: Summary
echo -e "${BLUE}═══════════════════════════════════════════════════════${NC}"
echo -e "${GREEN} Dogfood setup complete!${NC}"
echo -e "${BLUE}═══════════════════════════════════════════════════════${NC}"
echo ""
echo " Installed: $installed plugins"
echo " Backup: $BACKUP_DIR"
echo ""
echo " Your skills now come from your local plugins."
echo " When you run /vibe, /research, etc. - it uses YOUR code."
echo ""
echo " To revert: $0 --revert"
echo ""
echo -e "${YELLOW} NOTE: Restart Claude Code for changes to take effect.${NC}"
echo ""