42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
#!@bash@/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
function pebkac() {
|
|
echo 'This is just a simple Nix adapter for `lake print-paths|serve`.'
|
|
exit 1
|
|
}
|
|
|
|
[[ $# -gt 0 ]] || pebkac
|
|
case $1 in
|
|
--version)
|
|
# minimum version for `lake server` with fallback
|
|
echo 3.1.0
|
|
;;
|
|
print-paths)
|
|
shift
|
|
deps="$@"
|
|
root=.
|
|
# fall back to initial package if not in package
|
|
[[ ! -f "$root/flake.nix" ]] && root="@srcRoot@"
|
|
target="$root#print-paths"
|
|
args=()
|
|
# HACK: use stage 0 instead of 1 inside Lean's own `src/`
|
|
[[ -d Lean && -f ../flake.nix ]] && target="@srcTarget@print-paths" && args=@srcArgs@
|
|
for dep in $deps; do
|
|
target="$target.\"$dep\""
|
|
done
|
|
echo "Building dependencies..." >&2
|
|
# -v only has "built ...", but "-vv" is a bit too verbose
|
|
exec @nix@/bin/nix run "$target" ${args[*]} -v
|
|
;;
|
|
serve)
|
|
shift
|
|
[[ ${1:-} == "--" ]] && shift
|
|
# `link-ilean` puts them there
|
|
LEAN_PATH=${LEAN_PATH:+$LEAN_PATH:}$PWD/build/lib exec $(dirname $0)/lean --server "$@"
|
|
;;
|
|
*)
|
|
pebkac
|
|
;;
|
|
esac
|