#!/bin/bash # Print a prompt file from $OLLIE_PROMPTS_PATH to stdout for agentSpawn hook injection. # Usage: prime (resolves or .md under OLLIE_PROMPTS_PATH) # OLLIE_PROMPTS_PATH is colon-separated (like PATH). Each directory is searched # in order for and .md. # Performs environment variable substitution on the file contents. set -euo pipefail PROMPTS_PATH="${OLLIE_PROMPTS_PATH:-${HOME}/.config/ollie/prompts}" if [ $# -ne 1 ]; then echo "usage: prime " >&2 exit 1 fi NAME="$1" IFS=: read -ra DIRS <<< "$PROMPTS_PATH" for dir in "${DIRS[@]}"; do [ -z "$dir" ] && continue for path in "$dir/$NAME" "$dir/$NAME.md"; do if [ -f "$path" ]; then export PRIME_DATE="$(date +%Y-%m-%d)" export PRIME_PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')" export PRIME_IS_GIT_REPO="$([ -e .git ] && echo true || echo false)" envsubst '${OLLIE_PROMPTS_PATH} ${OLLIE_SESSION_ID} ${PWD} ${PRIME_DATE} ${PRIME_PLATFORM} ${PRIME_IS_GIT_REPO}' < "$path" exit 0 fi done done echo "prime: prompt not found: $NAME" >&2 exit 1