From de30306dda3cf64572fe6156ff1d9bb2928ad039 Mon Sep 17 00:00:00 2001 From: OPPEN321 Date: Wed, 5 Nov 2025 17:41:18 +0800 Subject: [PATCH] Update build.sh --- build.sh | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/build.sh b/build.sh index ef6f250..7f4e17d 100644 --- a/build.sh +++ b/build.sh @@ -304,7 +304,95 @@ prepare_source_code() { echo -e "${BOLD}${BLUE_COLOR}■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■${RESET}" echo "" } + +# 执行构建脚本 +execute_build_scripts() { + ### 第一步:准备构建脚本 ### + clear + echo -e "${BOLD}${BLUE_COLOR}■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □${RESET}" + echo -e "${BOLD}${WHITE} 执行构建脚本 [1/3]${RESET}" + echo -e "${BOLD}${BLUE_COLOR}■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □${RESET}" + echo "" + echo -e " ${BOLD}${CYAN_COLOR}⟳${RESET} ${BOLD}开始准备构建脚本...${RESET}" + echo -e " ${BOLD}${MAGENTA_COLOR}│${RESET}" + + # 定义脚本列表 + scripts=( + 00-prepare_base.sh + 01-prepare_base-mainline.sh + 02-prepare_package.sh + 03-convert_translation.sh + 04-fix_kmod.sh + 05-fix-source.sh + ) + + # 下载构建脚本 + for script in "${scripts[@]}"; do + echo -e " ${BOLD}${MAGENTA_COLOR}├─ 📥 下载脚本: ${CYAN_COLOR}$script${RESET}" + if curl -fsS -O "$mirror/openwrt/scripts/$script" >/dev/null 2>&1; then + echo -e " ${BOLD}${MAGENTA_COLOR}│ ${GREEN_COLOR}✓${RESET} ${BOLD}成功${RESET}" + else + echo -e " ${BOLD}${MAGENTA_COLOR}│ ${RED_COLOR}✗${RESET} ${BOLD}下载失败${RESET}" + echo -e " ${BOLD}${RED_COLOR}✗${RESET} ${BOLD}请检查镜像源: ${YELLOW_COLOR}$mirror${RESET}" + return 1 + fi + done + echo -e " ${BOLD}${MAGENTA_COLOR}│${RESET}" + + chmod 0755 *sh + echo -e " ${BOLD}${GREEN_COLOR}✓${RESET} ${BOLD}所有脚本已赋予执行权限${RESET}" + echo "" + + ### 第二步:执行构建任务 ### + clear + echo -e "${BOLD}${BLUE_COLOR}■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □${RESET}" + echo -e "${BOLD}${WHITE} 运行构建任务 [2/3]${RESET}" + echo -e "${BOLD}${BLUE_COLOR}■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □${RESET}" + echo "" + + build_sequence=( + 00-prepare_base.sh + 01-prepare_base-mainline.sh + 02-prepare_package.sh + 04-fix_kmod.sh + 05-fix-source.sh + ) + + for step in "${build_sequence[@]}"; do + echo -e " ${BOLD}${CYAN_COLOR}▶${RESET} ${BOLD}正在执行: ${YELLOW_COLOR}$step${RESET}" + echo -e " ${BOLD}${MAGENTA_COLOR}│${RESET}" + if bash "$step" >/dev/null 2>&1; then + echo -e " ${BOLD}${GREEN_COLOR}✓${RESET} ${BOLD}$step 执行成功${RESET}" + else + echo -e " ${BOLD}${RED_COLOR}✗${RESET} ${BOLD}$step 执行失败${RESET}" + echo -e " ${BOLD}${YELLOW_COLOR}⚠${RESET} ${BOLD}请检查脚本内容或镜像源配置${RESET}" + return 1 + fi + echo "" + done + + ### 第三步:清理临时脚本 ### + clear + echo -e "${BOLD}${BLUE_COLOR}■ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □${RESET}" + echo -e "${BOLD}${WHITE} 清理临时文件 [3/3]${RESET}" + echo -e "${BOLD}${BLUE_COLOR}■ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □${RESET}" + echo "" + + echo -e " ${BOLD}${CYAN_COLOR}⟳${RESET} ${BOLD}正在清理构建脚本...${RESET}" + if rm -f 0*-*.sh >/dev/null 2>&1; then + echo -e " ${BOLD}${GREEN_COLOR}✓${RESET} ${BOLD}临时脚本清理完成${RESET}" + else + echo -e " ${BOLD}${YELLOW_COLOR}⚠${RESET} ${BOLD}部分脚本未能清理${RESET}" + fi + + echo "" + echo -e "${BOLD}${BLUE_COLOR}■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■${RESET}" + echo -e "${BOLD}${GREEN_COLOR} 构建脚本执行阶段完成!${RESET}" + echo -e "${BOLD}${BLUE_COLOR}■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■${RESET}" + echo "" +} + # 主执行逻辑 main() { validate_password @@ -312,6 +400,7 @@ main() { setup_build_environment setup_curl_progress prepare_source_code + execute_build_scripts } main "$@"