#!/usr/bin/env bash
set -Eeuo pipefail
umask 077
if (( EUID != 0 )); then echo 'Запустите от root: sudo bash bootstrap.sh --id N' >&2; exit 1; fi
BASE_URL="${INFRAHUB_URL:-https://infra.936439.xyz}"
[[ "$BASE_URL" =~ ^https://[A-Za-z0-9.-]+(:[0-9]+)?/?$ ]] || { echo 'INFRAHUB_URL должен быть HTTPS адресом панели' >&2; exit 2; }
BASE_URL="${BASE_URL%/}"
command -v curl >/dev/null || { echo 'Нужен curl (apt install curl)' >&2; exit 1; }
command -v mktemp >/dev/null || exit 1
TMP_DIR="$(mktemp -d)"
trap 'rm -rf -- "$TMP_DIR"' EXIT
for name in install.sh agent.py requirements.txt docker-inventory.py infrahub-docker-inventory.service infrahub-docker-inventory.timer update-agent.py infrahub-agent-update.service infrahub-agent-update.timer VERSION; do
  curl --proto '=https' --tlsv1.2 --fail --silent --show-error --location --max-time 40     "$BASE_URL/agent/$name" -o "$TMP_DIR/$name"
done
# Agent source is served by your own InfraHub installation; inspect scripts before running on other machines.
bash "$TMP_DIR/install.sh" --url "$BASE_URL" "$@"
