106 lines
4.1 KiB
Bash
Executable File
106 lines
4.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Script: fix-hardcoded-paths.sh
|
|
# Purpose: Fix hardcoded multiagent-core paths to use simple project-relative paths
|
|
# Usage: ./fix-hardcoded-paths.sh [--dry-run]
|
|
|
|
set -euo pipefail
|
|
|
|
DRY_RUN=false
|
|
if [[ "${1:-}" == "--dry-run" ]]; then
|
|
DRY_RUN=true
|
|
echo "DRY RUN MODE - No files will be changed"
|
|
echo ""
|
|
fi
|
|
|
|
PLUGINS_DIR="$HOME/.claude/marketplaces/multiagent-dev/plugins"
|
|
|
|
echo "=== Fixing Hardcoded Paths in Plugins ==="
|
|
echo ""
|
|
|
|
# Complex path pattern that needs replacement
|
|
COMPLEX_CONFIG_PATH='$([ -f "$([ -d "$HOME/.claude/marketplaces/multiagent-dev/plugins/*/skills/*/config" ] && echo "$HOME/.claude/marketplaces/multiagent-dev/plugins/*/skills/*/config" || find "$HOME/.claude/marketplaces/multiagent-dev/plugins/multiagent-config" -type d -path "*/skills/*" -name "config" 2>/dev/null | head -1).json" ] && echo "$([ -d "$HOME/.claude/marketplaces/multiagent-dev/plugins/*/skills/*/config" ] && echo "$HOME/.claude/marketplaces/multiagent-dev/plugins/*/skills/*/config" || find "$HOME/.claude/marketplaces/multiagent-dev/plugins/multiagent-config" -type d -path "*/skills/*" -name "config" 2>/dev/null | head -1).json" || find "$HOME/.claude/marketplaces/multiagent-dev/plugins/multiagent-core/skills/*" -name "config.json" -type f 2>/dev/null | head -1)'
|
|
|
|
SIMPLE_CONFIG_PATH='.multiagent/config.json'
|
|
|
|
# Count before
|
|
COMPLEX_PATHS_BEFORE=$(grep -r "multiagent-core/skills" "$PLUGINS_DIR"/*/commands/*.md "$PLUGINS_DIR"/*/agents/*.md 2>/dev/null | wc -l)
|
|
|
|
echo "Before:"
|
|
echo " - Complex multiagent-core paths: $COMPLEX_PATHS_BEFORE"
|
|
echo ""
|
|
|
|
if $DRY_RUN; then
|
|
echo "[DRY RUN] Would perform these replacements:"
|
|
echo ""
|
|
fi
|
|
|
|
FIXED_FILES=0
|
|
|
|
# Fix all agent and command files
|
|
for file in "$PLUGINS_DIR"/*/agents/*.md "$PLUGINS_DIR"/*/commands/*.md; do
|
|
[ -f "$file" ] || continue
|
|
|
|
# Check if file has hardcoded multiagent-core references
|
|
if grep -q "multiagent-core" "$file" 2>/dev/null; then
|
|
if $DRY_RUN; then
|
|
echo "[DRY RUN] Would fix: $file"
|
|
grep -n "multiagent-core" "$file" | head -3
|
|
echo ""
|
|
else
|
|
# Create backup
|
|
cp "$file" "$file.backup"
|
|
|
|
# Replace all complex config paths with simple .multiagent/config.json
|
|
sed -i 's|\$HOME/\.\(claude\|multiagent\)/[^"]*config\.json|.multiagent/config.json|g' "$file"
|
|
sed -i 's|\$(find[^)]*multiagent-core[^)]*)|.multiagent/config.json|g' "$file"
|
|
sed -i 's|\$(find[^)]*multiagent-config[^)]*)|.multiagent/config.json|g' "$file"
|
|
|
|
# Fix script references
|
|
sed -i 's|\$HOME/\.\(claude\|multiagent\)/[^"]*\.sh|.multiagent/scripts/\$(basename \$0)|g' "$file"
|
|
sed -i 's|\$(find[^)]*multiagent-core[^)]*\.sh[^)]*)|.multiagent/scripts/\$(basename \$0)|g' "$file"
|
|
|
|
# Fix template references
|
|
sed -i 's|\$HOME/\.\(claude\|multiagent\)/[^"]*templates|.multiagent/templates|g' "$file"
|
|
sed -i 's|\$(find[^)]*multiagent-core[^)]*templates[^)]*)|.multiagent/templates|g' "$file"
|
|
|
|
# Fix specific worktree reference
|
|
sed -i 's|../multiagent-core-worktrees/|../PROJECT-worktrees/|g' "$file"
|
|
|
|
# Fix validation reference
|
|
sed -i 's|--plugin multiagent-core|--plugin \$(basename \$(git rev-parse --show-toplevel))|g' "$file"
|
|
|
|
echo "✓ Fixed: $file"
|
|
((FIXED_FILES++))
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
|
|
if $DRY_RUN; then
|
|
echo "[DRY RUN] Would fix $FIXED_FILES files"
|
|
else
|
|
echo "✓ Fixed $FIXED_FILES files"
|
|
|
|
# Count after
|
|
COMPLEX_PATHS_AFTER=$(grep -r "multiagent-core" "$PLUGINS_DIR"/*/commands/*.md "$PLUGINS_DIR"/*/agents/*.md 2>/dev/null | wc -l || echo 0)
|
|
|
|
echo ""
|
|
echo "After:"
|
|
echo " - Complex multiagent-core paths: $COMPLEX_PATHS_AFTER (was $COMPLEX_PATHS_BEFORE)"
|
|
echo ""
|
|
|
|
if [ "$COMPLEX_PATHS_AFTER" -eq 0 ]; then
|
|
echo "🎉 All hardcoded paths fixed!"
|
|
else
|
|
echo "⚠️ Some references remain - may need manual review"
|
|
echo ""
|
|
echo "Remaining issues:"
|
|
grep -rn "multiagent-core" "$PLUGINS_DIR"/*/commands/*.md "$PLUGINS_DIR"/*/agents/*.md 2>/dev/null | head -5
|
|
fi
|
|
|
|
echo ""
|
|
echo "Backups saved with .backup extension"
|
|
echo "To restore: find $PLUGINS_DIR -name '*.backup' -exec bash -c 'mv \"\$0\" \"\${0%.backup}\"' {} \\;"
|
|
fi
|