| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/env bash
- # Generic runner for skill scripts
- # Searches personal superpowers first, then core plugin
- #
- # Usage: scripts/skill-run <skill-relative-path> [args...]
- # Example: scripts/skill-run skills/collaboration/remembering-conversations/tool/search-conversations "query"
- set -euo pipefail
- if [[ $# -eq 0 ]]; then
- cat <<'EOF'
- Usage: scripts/skill-run <skill-relative-path> [args...]
- Runs scripts from skills, checking personal superpowers first, then core.
- Examples:
- scripts/skill-run skills/collaboration/remembering-conversations/tool/search-conversations "query"
- scripts/skill-run skills/collaboration/remembering-conversations/tool/index-conversations --cleanup
- The script will be found at:
- 1. ~/.config/superpowers/<skill-relative-path> (personal, if exists)
- 2. ${CLAUDE_PLUGIN_ROOT}/<skill-relative-path> (core plugin)
- EOF
- exit 1
- fi
- # Get the script path to run
- SCRIPT_PATH="$1"
- shift # Remove script path from args, leaving remaining args
- # Determine directories
- PERSONAL_SUPERPOWERS_DIR="${PERSONAL_SUPERPOWERS_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/superpowers}"
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
- # Try personal superpowers first
- PERSONAL_SCRIPT="${PERSONAL_SUPERPOWERS_DIR}/${SCRIPT_PATH}"
- if [[ -x "$PERSONAL_SCRIPT" ]]; then
- exec "$PERSONAL_SCRIPT" "$@"
- fi
- # Fall back to core plugin
- CORE_SCRIPT="${PLUGIN_ROOT}/${SCRIPT_PATH}"
- if [[ -x "$CORE_SCRIPT" ]]; then
- exec "$CORE_SCRIPT" "$@"
- fi
- # Not found
- echo "Error: Script not found: $SCRIPT_PATH" >&2
- echo "" >&2
- echo "Searched:" >&2
- echo " $PERSONAL_SCRIPT (personal)" >&2
- echo " $CORE_SCRIPT (core)" >&2
- exit 1
|