#!/usr/bin/env bash
set -Eeuo pipefail
BASE=/opt/awg-gus-bot
if [[ "${1:-menu}" == update ]]; then
  [[ $EUID -eq 0 ]] || { echo 'Запустите через sudo'; exit 1; }
  export AWG_GUS_REPO_URL AWG_GUS_REF
  AWG_GUS_REPO_URL=$(cat "$BASE/current/source-url")
  AWG_GUS_REF=$(cat "$BASE/current/source-ref")
  [[ "$AWG_GUS_REPO_URL" == https://* && "$AWG_GUS_REPO_URL" != *'@'* ]] || exit 2
  [[ "$AWG_GUS_REF" =~ ^[A-Za-z0-9._-]+$ ]] || exit 2
  installer=$(mktemp)
  trap 'rm -f -- "$installer"' EXIT
  downloaded=0
  for kind in branch tag commit; do
    if curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL --retry 3 --connect-timeout 15 --max-time 180 \
      "${AWG_GUS_REPO_URL%.git}/raw/$kind/$AWG_GUS_REF/install.sh" -o "$installer"; then
      downloaded=1
      break
    fi
  done
  ((downloaded)) || { echo 'Не удалось скачать установщик'; exit 1; }
  bash "$installer" --update
else
  exec python3 "$BASE/current/run.py" manage "$@"
fi
