#!/usr/bin/env bash set -euo pipefail # 一键更新本地 acme.sh。 # 使用 jsDelivr CDN 获取 acmesh-official/acme.sh 的 master 最新版本, # 不执行 GitHub clone,也不依赖 GitHub 下载地址;脚本保存到 API/acme/。 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" API_ROOT="$(realpath "$SCRIPT_DIR/..")" ACME_DIR="$API_ROOT/acme" ACME_FILE="$ACME_DIR/acme.sh" SOURCE_URL="https://cdn.jsdelivr.net/gh/acmesh-official/acme.sh@master/acme.sh" mkdir -p "$ACME_DIR" TEMP_FILE="$(mktemp "$ACME_DIR/acme.sh.XXXXXX")" trap 'rm -f "$TEMP_FILE"' EXIT command -v curl >/dev/null 2>&1 || { echo "缺少 curl,请先安装 curl。" >&2; exit 1; } echo "正在从非 GitHub CDN 下载 acme.sh 最新版本..." curl -fsSL --retry 3 --connect-timeout 15 "$SOURCE_URL" -o "$TEMP_FILE" grep -q '^VER=' "$TEMP_FILE" || { echo "下载内容不是有效的 acme.sh 文件。" >&2; exit 1; } chmod 755 "$TEMP_FILE" mv -f "$TEMP_FILE" "$ACME_FILE" echo "acme.sh 已更新到:$ACME_FILE" grep '^VER=' "$ACME_FILE" | head -n 1