| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/env bash
- # Generic runner for skill scripts
- # Searches personal superpowers first, then core plugin
- #
- # Usage: scripts/run <skill-relative-path> [args...]
- # Example: scripts/run skills/collaboration/remembering-conversations/tool/search-conversations "query"
- set -euo pipefail
- if [[ $# -eq 0 ]]; then
- cat <<'EOF'
- Usage: scripts/run <skill-relative-path> [args...]
- Runs scripts from skills, checking personal superpowers first, then core.
- Examples:
- scripts/run skills/collaboration/remembering-conversations/tool/search-conversations "query"
- scripts/run skills/getting-started/list-skills
- scripts/run skills/getting-started/skills-search "pattern"
- 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
|