♻️ refactor(core): 优化 Homebrew 升级管理器的错误重试与隔离机制
* 重构 Cask 升级逻辑,引入失败隔离与针对性重试机制 * 新增通过环境变量自定义重试次数与延迟间隔的功能 * 优化启动器下载流程,集成 curl 自动退避重试策略 * 改进 Cask 失败处理,仅对未成功项进行二次重试并移除强制标志 * 更新文档,详细说明网络瞬时错误处理与新版本升级逻辑 * 增强脚本健壮性,完善针对数值参数的合法性校验机制
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user