ollie/scripts/x/prime

34 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Print a prompt file from $OLLIE_PROMPTS_PATH to stdout for agentSpawn hook injection.
# Usage: prime <name> (resolves <name> or <name>.md under OLLIE_PROMPTS_PATH)
# OLLIE_PROMPTS_PATH is colon-separated (like PATH). Each directory is searched
# in order for <name> and <name>.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 <name>" >&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