39 lines
896 B
Bash
Executable file
39 lines
896 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Wrapper to run scripts/play.fun without requiring 'fun' on PATH.
|
|
# Honors FUN_BIN if provided, otherwise auto-detects a local build, then PATH.
|
|
|
|
ROOT="$(cd "$(dirname "$0")"/.. && pwd)"
|
|
PLAY_FUN="$ROOT/scripts/play.fun"
|
|
|
|
BIN="${FUN_BIN:-}"
|
|
if [[ -z "$BIN" ]]; then
|
|
# Try common local build locations
|
|
for cand in \
|
|
"$ROOT/build/fun" \
|
|
"$ROOT/build_debug/fun" \
|
|
"$ROOT/build_release/fun" \
|
|
"$ROOT/fun"; do
|
|
if [[ -x "$cand" ]]; then
|
|
BIN="$cand"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [[ -z "$BIN" ]]; then
|
|
if command -v fun >/dev/null 2>&1; then
|
|
BIN="fun"
|
|
else
|
|
echo "error: fun interpreter not found. Set FUN_BIN or build it (e.g., CMake)." >&2
|
|
exit 2
|
|
fi
|
|
fi
|
|
|
|
# Ensure stdlib is discoverable unless user overrides
|
|
if [[ -z "${FUN_LIB_DIR:-}" ]]; then
|
|
export FUN_LIB_DIR="$ROOT/lib"
|
|
fi
|
|
|
|
exec "$BIN" "$PLAY_FUN" "$@"
|