| #!@bash@/bin/bash | |
| set -euo pipefail | |
| root="." | |
| # find package root | |
| while [[ "$root" != / ]]; do | |
| [ -f "$root/flake.nix" ] && break | |
| root="$(realpath "$root/..")" | |
| done | |
| # fall back to initial package if not in package | |
| [[ ! -f "$root/flake.nix" ]] && root="@srcRoot@" | |
| # use Lean w/ package unless in server mode (which has its own LEAN_PATH logic) | |
| target="$root#lean-package" | |
| for arg in "$@"; do | |
| case $arg in | |
| --server | --worker | -v | --version) | |
| target="$root#lean" | |
| ;; | |
| esac | |
| done | |
| args=(-- "$@") | |
| # HACK: use stage 0 instead of 1 inside Lean's own `src/` | |
| [[ -d Lean && -f ../flake.nix ]] && target="@srcTarget@" && args=@srcArgs@ | |
| LEAN_SYSROOT="$(dirname "$0")/.." exec @nix@/bin/nix ${LEAN_NIX_ARGS:-} run "$target" ${args[*]} |