#!/usr/bin/env bash set -euo pipefail ROOT="${MAA_ONLINE_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" export HOME="${MAA_ONLINE_HOME:-$ROOT/runtime/home}" export MAA_CONFIG_DIR="${MAA_CONFIG_DIR:-$ROOT/config}" MAA_BIN="${MAA_BIN:-$ROOT/runtime/bin/maa}" retry() { local attempt for attempt in 1 2 3; do if "$@"; then return 0; fi echo "Attempt ${attempt}/3 failed: $*" >&2 sleep $((attempt * 2)) done return 1 } # GitHub 直连被重置时,用 MAA_ONLINE_UPDATE_PROXY 指定代理(如 http://127.0.0.1:8118); # 未设置时维持"剥离代理"的旧行为,便于在可直连的环境使用。 UPDATE_PROXY="${MAA_ONLINE_UPDATE_PROXY:-}" direct() { if [ -n "$UPDATE_PROXY" ]; then env HTTPS_PROXY="$UPDATE_PROXY" HTTP_PROXY="$UPDATE_PROXY" ALL_PROXY="$UPDATE_PROXY" "$@" elif [ "${MAA_ONLINE_KEEP_PROXY:-0}" = "1" ]; then "$@" else env -u HTTPS_PROXY -u HTTP_PROXY -u ALL_PROXY "$@" fi } echo '[1/3] Updating maa-cli' retry direct timeout 90s "$MAA_BIN" self update echo '[2/3] Updating official MaaCore and base resources' retry direct timeout 150s "$MAA_BIN" update stable --batch resource_repo="$HOME/.local/share/maa/MaaResource" if [ -d "$resource_repo/.git" ]; then git -C "$resource_repo" config http.version HTTP/1.1; fi echo '[3/3] Updating hot resources' retry direct timeout 90s "$MAA_BIN" hot-update --batch echo 'Update workflow completed.'