♻️ refactor(core): 优化 Homebrew 升级管理器的错误重试与隔离机制

* 重构 Cask 升级逻辑,引入失败隔离与针对性重试机制
* 新增通过环境变量自定义重试次数与延迟间隔的功能
* 优化启动器下载流程,集成 curl 自动退避重试策略
* 改进 Cask 失败处理,仅对未成功项进行二次重试并移除强制标志
* 更新文档,详细说明网络瞬时错误处理与新版本升级逻辑
* 增强脚本健壮性,完善针对数值参数的合法性校验机制
This commit is contained in:
2026-07-17 00:10:37 +08:00
parent 505dc71cdb
commit 3e7063b30a
3 changed files with 142 additions and 13 deletions
+15 -1
View File
@@ -42,7 +42,21 @@ EOF
setup_sudo_askpass
echo "正在下载远程脚本..."
curl -f -sSL "$REMOTE" -o "$TEMP"
download_retries="${BREWUP_DOWNLOAD_RETRIES:-3}"
download_retry_delay="${BREWUP_DOWNLOAD_RETRY_DELAY_SECONDS:-2}"
[[ "$download_retries" =~ ^[1-9][0-9]*$ ]] || download_retries=3
[[ "$download_retry_delay" =~ ^[0-9]+$ ]] || download_retry_delay=2
curl_retry_all_errors=()
if curl --help all 2>/dev/null | grep -q -- '--retry-all-errors'; then
curl_retry_all_errors+=(--retry-all-errors)
fi
curl -f -sSL \
--retry "$download_retries" \
--retry-delay "$download_retry_delay" \
"${curl_retry_all_errors[@]}" \
"$REMOTE" -o "$TEMP"
chmod 600 "$TEMP"
if [[ -n "${BREWUP_SHA256:-}" ]]; then