mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-01 01:10:21 +08:00
69 lines
1.3 KiB
Bash
Executable File
69 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# deploy-cli.sh - Install astrbot with uv on Linux / macOS / WSL.
|
|
|
|
set -euo pipefail
|
|
|
|
if [ -t 1 ] && [ -z "${NO_COLOR:-}" ]; then
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m'
|
|
else
|
|
RED=''
|
|
GREEN=''
|
|
YELLOW=''
|
|
CYAN=''
|
|
NC=''
|
|
fi
|
|
|
|
info() { echo -e "${CYAN}[INFO]${NC} $*"; }
|
|
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
|
ok() { echo -e "${GREEN}[OK]${NC} $*"; }
|
|
err() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
|
|
|
|
has() {
|
|
command -v "$1" >/dev/null 2>&1
|
|
}
|
|
|
|
refresh_uv_path() {
|
|
export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"
|
|
}
|
|
|
|
install_uv() {
|
|
info "uv was not found. Installing uv..."
|
|
|
|
if has curl; then
|
|
curl -fsSL https://astral.sh/uv/install.sh | sh
|
|
refresh_uv_path
|
|
return
|
|
fi
|
|
|
|
if has wget; then
|
|
wget -qO- https://astral.sh/uv/install.sh | sh
|
|
refresh_uv_path
|
|
return
|
|
fi
|
|
|
|
err "curl or wget is required to install uv."
|
|
exit 1
|
|
}
|
|
|
|
if has uv; then
|
|
UV_BIN="uv"
|
|
else
|
|
install_uv
|
|
UV_BIN="uv"
|
|
fi
|
|
|
|
if ! has "$UV_BIN"; then
|
|
err "uv was not found after installation."
|
|
err "Please install uv manually: https://docs.astral.sh/uv/getting-started/installation/"
|
|
exit 1
|
|
fi
|
|
|
|
ok "$("$UV_BIN" --version)"
|
|
info "Installing AstrBot with Python 3.12..."
|
|
"$UV_BIN" tool install --python 3.12 astrbot
|
|
ok "AstrBot has been installed."
|