#!/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