#!/bin/bash

# --- 功能函數 ---

# 執行 LinuxMirrors 的共用函數 (減少重複程式碼)
run_mirror_script() {
    local source_url=$1
    sudo bash -c "curl -fsSL https://linuxmirrors.cn/main.sh | bash -s -- --zh-hant --abroad --source $source_url --protocol https"
}

# --- 子選單：更換源 ---
menu_change_mirror() {
    while true; do
        echo ""
        echo "---------- [子選單] 更換系統源 Change Mirror ----------"
        echo "1) 切換至 mirror.twds.com.tw (台灣) (Taiwan)"
        echo "2) 切換至 mirror.sg.gs (新加坡) (Singapore)"
        echo "0) 回到主選單 Back"
        echo "---------------------------------------"
        read -p "請選擇源: " mirror_choice

        case $mirror_choice in
            1) run_mirror_script "mirror.twds.com.tw" ;;
            2) run_mirror_script "mirror.sg.gs" ;;
            0) break ;; # 跳出循環，回到上一層
            *) echo "無效選項，請重新輸入 Invalid option." ;;
        esac
        read -p "按 Enter 繼續... Press Enter to continue..."
    done
}

# --- 主選單 ---
show_main_menu() {
    echo ""
    echo "========== 系統工具主選單 =========="
    echo "1) 更換系統軟體源 (Mirrors) Change System Mirros"
    echo "2) 系統更新 Update System Package"
    echo "3) 安裝Docker Install Docker"
    echo "4) 安裝uv Install uv"
    echo "0) 結束程式 Exit"
    echo "==================================="
}

# --- 主程式 ---
while true; do
    show_main_menu
    read -p "請選擇主功能: " main_choice

    case $main_choice in
        1) 
            menu_change_mirror 
            ;;
        2) 
            echo "執行系統更新中... Update System..."
            sudo apt update && sudo apt upgrade -y
            ;;
        3) 
            echo "安裝Docker... Install Docker..."
            curl -fsSL https://get.docker.com/ | sudo sh
            ;;
        4)
            echo "安裝uv... Install uv..."
            curl -LsSf https://astral.sh/uv/install.sh | sudo sh
            ;;
        0) 
            echo "程式結束，再見！ Goodbye!"
            exit 0 
            ;;
        *) 
            echo "錯誤：請輸入 0-4 的數字 Error: enter a number between 0-4 " 
            ;;
    esac

    # 如果不是進入子選單（選項1），就顯示這個提示
    if [ "$main_choice" != "1" ]; then
        read -p "按 Enter 繼續... Press Enter to continue..."
    fi
done