2026-04-03 14:46:03 -03:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
if [[ "${EUID}" -ne 0 ]]; then
|
2026-04-07 13:13:58 -03:00
|
|
|
echo "ananke-self-update.sh must run as root" >&2
|
2026-04-03 14:46:03 -03:00
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2026-04-07 13:13:58 -03:00
|
|
|
REPO_URL="${ANANKE_REPO_URL:-ssh://git@scm.bstein.dev:2242/bstein/ananke.git}"
|
|
|
|
|
BRANCH="${ANANKE_REPO_BRANCH:-main}"
|
|
|
|
|
REPO_DIR="${ANANKE_REPO_DIR:-/opt/ananke}"
|
2026-04-09 01:38:06 -03:00
|
|
|
HOST_SHORT="$(hostname -s 2>/dev/null || hostname)"
|
2026-04-03 14:46:03 -03:00
|
|
|
|
|
|
|
|
mkdir -p "$(dirname "${REPO_DIR}")"
|
|
|
|
|
if [[ ! -d "${REPO_DIR}/.git" ]]; then
|
|
|
|
|
echo "[self-update] cloning ${REPO_URL} into ${REPO_DIR}"
|
|
|
|
|
git clone "${REPO_URL}" "${REPO_DIR}"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
cd "${REPO_DIR}"
|
|
|
|
|
echo "[self-update] syncing ${BRANCH}"
|
|
|
|
|
git fetch origin --prune
|
|
|
|
|
git checkout "${BRANCH}"
|
|
|
|
|
git reset --hard "origin/${BRANCH}"
|
|
|
|
|
|
|
|
|
|
echo "[self-update] running installer"
|
2026-04-09 01:38:06 -03:00
|
|
|
# Keep host configs aligned with tracked templates so startup/shutdown drills
|
|
|
|
|
# always use the latest checklist and safety logic.
|
|
|
|
|
if [[ -z "${ANANKE_FORCE_CONFIG_TEMPLATE:-}" ]]; then
|
|
|
|
|
case "${HOST_SHORT}" in
|
|
|
|
|
titan-db)
|
|
|
|
|
export ANANKE_FORCE_CONFIG_TEMPLATE="coordinator"
|
|
|
|
|
;;
|
|
|
|
|
titan-24)
|
|
|
|
|
export ANANKE_FORCE_CONFIG_TEMPLATE="peer"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
fi
|
2026-04-03 14:46:03 -03:00
|
|
|
"${REPO_DIR}/scripts/install.sh"
|