Initial commit
This commit is contained in:
105
skills/build-assistant/scripts/fix-hardcoded-paths.sh
Executable file
105
skills/build-assistant/scripts/fix-hardcoded-paths.sh
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user