Files
laya-hook/install.sh
richarjiang eae4df7d51 init
2026-09-24 10:04:41 +08:00

40 lines
1.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Create the runtime venv, then register the launchd service and client hooks.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
HOME_DIR="${LAYA_ROUTER_HOME:-$HOME/.laya-router}"
if [[ "$(uname -s)" != "Darwin" ]]; then
echo "当前安装脚本只支持 macOS(launchd)。" >&2
exit 1
fi
if ! command -v uv >/dev/null 2>&1; then
echo "需要 uv。安装: https://docs.astral.sh/uv/getting-started/installation/" >&2
exit 1
fi
mkdir -p "$HOME_DIR"
if [[ ! -x "$HOME_DIR/.venv/bin/python" ]]; then
created=0
for version in 3.13 3.12 3.11 3.10; do
rm -rf "$HOME_DIR/.venv"
if uv venv "$HOME_DIR/.venv" --python "$version"; then
created=1
break
fi
done
if [[ "$created" -ne 1 ]]; then
echo "需要 Python 3.10 或更高版本。可先执行: uv python install 3.13" >&2
exit 1
fi
fi
# Install a real copy. An editable install points at this repo, which often lives
# under ~/Documents. launchd then blocks forever in open() on that directory.
uv pip install --python "$HOME_DIR/.venv/bin/python" --reinstall-package laya-router "$ROOT"
printf '%s\n' "$ROOT" > "$HOME_DIR/source.path"
exec "$HOME_DIR/.venv/bin/laya-router" install "$@"