#!/bin/bash
# 极简公共函数库 - common.sh
# 包含通用函数

# 基础配置（所有脚本共享，变量不能删）
packages_url="https://www.klquan.com/packages/"

# 颜色定义
RED='\033[41;30m'
GREEN='\033[42;30m'
NC='\033[0m'

# 获取软件安装包列表
get_packages(){
    local server="$1"
    local download_patch="$2"
    echo "已经连接服务器，正在查找可用的安装包..." >&2
    local all_package=($(curl -sSL "$packages_url" | grep "$server" | awk -F '"' '{print $2}'))
    if [ ${#all_package[@]} -eq 0 ]; then
        echo -e "${RED}无法获取安装包列表，请检查${NC}" >&2
        exit 1
    else
        for i in "${!all_package[@]}"; do
            echo "  $((i+1)). ${all_package[i]}" >&2
            sleep 1
        done
        echo "安装包加载完毕，如果需要下载新版，下载地址为：" >&2
        echo -e "  【\033[34m$download_patch\033[0m】" >&2
        echo " " >&2
    fi
    # 返回包数组（只返回包名，不包含其他输出）
    printf '%s\n' "${all_package[@]}"
}

# 选择软件版本
select_version(){
    local all_package=("$@")
    local choice="${all_package[0]}"  # 第一个参数是用户选择
    # 从数组中移除第一个元素（choice）
    all_package=("${all_package[@]:1}")
    if [ -z "$choice" ]; then
        package="${all_package[-1]}"
        echo -e "用户没有指定，默认选择最新版本安装包${GREEN}【${all_package[-1]}】${NC}" >&2
    else
        if [[ ! "$choice" =~ ^[0-9]+$ ]] || [ "$choice" -lt 1 ] || [ "$choice" -gt "${#all_package[@]}" ]; then
            package="${all_package[-1]}"
            echo -e "${RED}用户选择无效，'$choice'不是正确的编号，使用默认最新版本${GREEN}【${all_package[-1]}】${NC}" >&2
        else
            package="${all_package[$((choice-1))]}"
            echo -e "用户指定了安装包，指定版本为${GREEN}【${all_package[$((choice-1))]}】${NC}" >&2
        fi
    fi
    # 只返回选中的包名
    echo "$package"
}

# 提示信息函数
show_usage(){
    sleep 1 && echo -e "  如果需要安装其他版本，在倒计时结束前[ctrl+C]终止，然后指定具体版本后重新开始即可"
    sleep 1 && echo -e "  例如: curl -sSL https://www.klquan.com/scripts/xxxxx.sh | bash -s -- 1"
    sleep 1 && echo " "
}

# 检查命令执行结果
check(){
    if [ $? -eq 0 ]; then
        echo -e "    ····${GREEN}执行成功${NC}"
    else
        echo -e "    ····${RED}操作失败，退出执行${NC}"
        exit 5
    fi
}

# 倒计时函数
countdown(){
    local home="$1"
    local package="$2"
    echo -e "确认安装信息，如需修改在倒计时结束前[ctrl+C]终止，10秒不操作自动执行安装"
    echo -e "安装位置 ${GREEN}【$home/】${NC}"
    echo -e "软件版本 ${GREEN}【$package】${NC}"
    echo "[倒计时-10]     _  _                                           " && sleep 1
    echo "[倒计时-09]    | |(_) _ __    __ _   __ _  _   _   __ _  _ __  " && sleep 1
    echo "[倒计时-08]    | || || '_ \  / _' | / _' || | | | / _' || '_ \ " && sleep 1
    echo "[倒计时-07]    | || || | | || (_| || (_| || |_| || (_| || | | |" && sleep 1
    echo "[倒计时-06]    |_||_||_| |_| \__, | \__, | \__,_| \__,_||_| |_|" && sleep 1
    echo "[倒计时-05]                  |___/     |_|                     " && sleep 1
    echo '[倒计时-04]    脚本作者：[孔令泉], 如有疑问请联系lqkong0189@163.com' && sleep 1
    echo '[倒计时-03]    官网连接：www.klquan.com;www.klquan.cn' && sleep 1
    echo '[倒计时-02]' && sleep 1
    echo '[倒计时-01]' && sleep 1
}
