Fix remote one-line install failing under process substitution

Skip local path resolution when install.sh runs via bash <(curl ...),
so resolve_src falls through to cloning instead of aborting on /dev/fd.

Co-authored-by: Frank Vitrano <WHC2006@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-07-23 14:22:51 +00:00
co-authored by Frank Vitrano
parent 7e611c3cd8
commit ed4236a89c
+13 -2
View File
@@ -75,12 +75,23 @@ install_deps() {
# Resolve source tree: current repo, or clone to temp # Resolve source tree: current repo, or clone to temp
resolve_src() { resolve_src() {
local here local src=${BASH_SOURCE[0]}
here=$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd) local here=
# `bash <(curl ...)` sets BASH_SOURCE to /dev/fd/N (a pipe). readlink -f then
# yields /proc/PID/fd/pipe:..., and cd fails under set -e before we can clone.
# Only look for a local tree when the installer is a normal on-disk file.
case "$src" in
/dev/fd/* | /proc/*/fd/*) ;;
*)
if here=$(cd "$(dirname "$(readlink -f "$src")")" && pwd); then
if [[ -f $here/miaur && -d $here/lib ]]; then if [[ -f $here/miaur && -d $here/lib ]]; then
SRC=$here SRC=$here
return 0 return 0
fi fi
fi
;;
esac
echo "==> Cloning ${REPO_URL} (${BRANCH})" echo "==> Cloning ${REPO_URL} (${BRANCH})"
TMP=$(mktemp -d) TMP=$(mktemp -d)