51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
PACKAGE_SPEC="${BOT_BOTTLE_INSTALL_SPEC:-git+https://gitea.dideric.is/didericis/bot-bottle.git}"
|
|
MIN_PYTHON="3.11"
|
|
|
|
say() {
|
|
printf 'bot-bottle install: %s\n' "$*" >&2
|
|
}
|
|
|
|
die() {
|
|
say "error: $*"
|
|
exit 1
|
|
}
|
|
|
|
command -v python3 >/dev/null 2>&1 || die "python3 is required (version ${MIN_PYTHON} or newer)"
|
|
|
|
python3 - <<'PY' || die "python3 3.11 or newer is required"
|
|
import sys
|
|
|
|
raise SystemExit(0 if sys.version_info >= (3, 11) else 1)
|
|
PY
|
|
|
|
command -v docker >/dev/null 2>&1 || die "Docker is required; install Docker and start the daemon, then re-run this script"
|
|
docker info >/dev/null 2>&1 || die "Docker is installed but the daemon is not reachable; start Docker and re-run this script"
|
|
|
|
mkdir -p \
|
|
"${HOME}/.bot-bottle/agents" \
|
|
"${HOME}/.bot-bottle/bottles" \
|
|
"${HOME}/.bot-bottle/contrib"
|
|
|
|
if command -v pipx >/dev/null 2>&1; then
|
|
say "installing with pipx"
|
|
pipx install --force "${PACKAGE_SPEC}"
|
|
else
|
|
say "pipx not found; installing with python3 -m pip --user"
|
|
python3 -m pip install --user --upgrade "${PACKAGE_SPEC}"
|
|
fi
|
|
|
|
if command -v bot-bottle >/dev/null 2>&1; then
|
|
BOT_BOTTLE_BIN="bot-bottle"
|
|
elif [ -x "${HOME}/.local/bin/bot-bottle" ]; then
|
|
BOT_BOTTLE_BIN="${HOME}/.local/bin/bot-bottle"
|
|
say "using ${BOT_BOTTLE_BIN}; add ${HOME}/.local/bin to PATH for future shells"
|
|
else
|
|
die "bot-bottle was installed but is not on PATH"
|
|
fi
|
|
|
|
say "running bot-bottle doctor"
|
|
"${BOT_BOTTLE_BIN}" doctor
|