diff --git a/main.sh b/main.sh new file mode 100755 index 0000000..eb5b1e1 --- /dev/null +++ b/main.sh @@ -0,0 +1,190 @@ +#!/bin/sh +# GL-iNet 路由器一键安装工具箱 - 主脚本 +# by @wukongdaily + +# 定义颜色输出函数 +red() { echo -e "\033[31m\033[01m$1\033[0m"; } +green() { echo -e "\033[32m\033[01m$1\033[0m"; } +yellow() { echo -e "\033[33m\033[01m$1\033[0m"; } +blue() { echo -e "\033[34m\033[01m$1\033[0m"; } +light_magenta() { echo -e "\033[95m\033[01m$1\033[0m"; } +light_yellow() { echo -e "\033[93m\033[01m$1\033[0m"; } +cyan() { echo -e "\033[38;2;0;255;255m$1\033[0m"; } + +HTTP_HOST="https://cafe.cpolar.cn/wkdaily/gl/raw/branch/main" + +##获取软路由型号信息 +get_router_name() { + model_info=$(cat /tmp/sysinfo/model) + echo "$model_info" +} + +## 自动检测路由器型号并调用对应脚本 +auto_detect_and_run() { + gl_name=$(get_router_name) + echo "检测到路由器型号: $gl_name" + + case "$gl_name" in + *BE6500* | *be6500*) + green "正在启动 BE6500 脚本..." + sh "$(dirname "$0")/be6500.sh" + ;; + *BE3600* | *be3600*) + green "正在启动 BE3600 脚本..." + sh "$(dirname "$0")/be3600.sh" + ;; + *MT5000* | *mt5000*) + green "正在启动 MT5000 脚本..." + sh "$(dirname "$0")/mt5000.sh" + ;; + *MT3600* | *mt3600*) + green "正在启动 MT3600 脚本..." + sh "$(dirname "$0")/mt3600.sh" + ;; + *MT-3000* | *mt3000* | *MT3000*) + if grep -q "OP24" /etc/openwrt_release 2>/dev/null; then + green "正在启动 MT-3000 OP24 脚本..." + sh "$(dirname "$0")/gl-inet-op24.sh" + else + green "正在启动 MT-3000 脚本..." + sh "$(dirname "$0")/gl-inet.sh" + fi + ;; + *MT-6000* | *mt6000* | *MT6000*) + if grep -q "OP24" /etc/openwrt_release 2>/dev/null; then + green "正在启动 MT-6000 OP24 脚本..." + sh "$(dirname "$0")/gl-inet-op24.sh" + else + green "正在启动 MT-6000 脚本..." + sh "$(dirname "$0")/gl-inet.sh" + fi + ;; + *MT-2500* | *mt2500* | *MT2500*) + green "正在启动 MT-2500A 脚本..." + sh "$(dirname "$0")/gl-inet.sh" + ;; + *) + red "抱歉,暂不支持该机型: $gl_name" + echo "您可以手动选择机型运行对应脚本" + return 1 + ;; + esac +} + +## 手动选择机型 +select_model() { + echo + echo "请选择您的路由器型号:" + echo + green " 1. GL-iNet BE-6500" + green " 2. GL-iNet BE-3600" + green " 3. GL-iNet MT-5000" + green " 4. GL-iNet MT-3600" + green " 5. GL-iNet MT-2500A" + green " 6. GL-iNet MT-3000" + green " 7. GL-iNet MT-6000" + echo + green " 8. GL-iNet MT-3000 (OP24固件)" + green " 9. GL-iNet MT-6000 (OP24固件)" + echo + green "10. MT-3000 换分区助手 (U盘扩容)" + green "11. MT-3000 Docker安装" + echo + echo " Q. 退出" + echo + read -p "请输入选项: " choice + + case $choice in + 1) + sh "$(dirname "$0")/be6500.sh" + ;; + 2) + sh "$(dirname "$0")/be3600.sh" + ;; + 3) + sh "$(dirname "$0")/mt5000.sh" + ;; + 4) + sh "$(dirname "$0")/mt3600.sh" + ;; + 5 | 6 | 7) + sh "$(dirname "$0")/gl-inet.sh" + ;; + 8) + sh "$(dirname "$0")/gl-inet-op24.sh" + ;; + 9) + sh "$(dirname "$0")/gl-inet-op24.sh" + ;; + 10) + if [ -f "$(dirname "$0")/mt-3000/mt3000.sh" ]; then + sh "$(dirname "$0")/mt-3000/mt3000.sh" + else + wget -O "$(dirname "$0")/mt-3000.sh" "$HTTP_HOST/mt-3000/mt3000.sh" && chmod +x "$(dirname "$0")/mt-3000.sh" + sh "$(dirname "$0")/mt-3000.sh" + fi + ;; + 11) + if [ -f "$(dirname "$0")/docker/do_docker.sh" ]; then + sh "$(dirname "$0")/docker/do_docker.sh" + else + wget -O "$(dirname "$0")/do_docker.sh" "$HTTP_HOST/docker/do_docker.sh" && chmod +x "$(dirname "$0")/do_docker.sh" + sh "$(dirname "$0")/do_docker.sh" + fi + ;; + q | Q) + echo "退出" + exit 0 + ;; + *) + red "无效选项,请重新选择" + ;; + esac +} + +## 主菜单 +show_main_menu() { + gl_name=$(get_router_name) + clear + echo "***********************************************************************" + echo "* *" + echo "* GL-iNet 路由器一键安装工具箱 by @wukongdaily *" + echo "* *" + echo "***********************************************************************" + echo + green "当前路由器型号: $gl_name" + echo + echo "支持以下操作:" + echo + light_magenta " A. 自动检测并运行对应脚本 (推荐)" + light_magenta " B. 手动选择机型" + echo + echo " Q. 退出" + echo +} + +## 主循环 +while true; do + show_main_menu + echo + read -p "请输入选项: " main_choice + + case $main_choice in + a | A) + auto_detect_and_run + ;; + b | B) + select_model + ;; + q | Q) + echo "退出" + exit 0 + ;; + *) + red "无效选项,请重新选择" + ;; + esac + + echo + read -p "按 Enter 键返回主菜单..." +done