#!/data/data/com.termux/files/usr/bin/bash
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

# 输出函数
print_message() { printf "${GREEN}[*] %s${NC}\n" "$1"; }
print_error() { printf "${RED}[!] %s${NC}\n" "$1"; }
print_warning() { printf "${YELLOW}[#] %s${NC}\n" "$1"; }

# 执行状态检测
check_status() {
    if [ $? -eq 0 ]; then
        print_message "$1 成功"
    else
        print_error "$1 执行失败，终止脚本"
        exit 1
    fi
}

# 临时目录+自动清理
TEMP_DIR=$(mktemp -d)
cleanup() { rm -rf "$TEMP_DIR"; }
trap cleanup EXIT

# 1. 切换阿里镜像源（全新环境第一步）
set_aliyun_mirror() {
    print_message "1/6 替换阿里Termux镜像源"
    cp "$PREFIX/etc/apt/sources.list" "$PREFIX/etc/apt/sources.list.bak"
    cat > "$PREFIX/etc/apt/sources.list" << EOT
deb https://mirrors.aliyun.com/termux-main/ stable main
EOT
    check_status "镜像源写入"
}

# 2. 完整系统升级（修复curl/openssl动态库缺失）
system_full_upgrade() {
    print_message "2/6 全量更新系统软件包"
    pkg update -y
    pkg full-upgrade -y
    check_status "系统升级"
}

# 3. 预安装全部前置依赖（空白环境必备）
install_base_deps() {
    print_message "3/6 安装基础依赖 git openssh termux-services curl android-tools wireguard-tools nano fish"
    pkg install -y git openssh termux-services curl android-tools wireguard-tools nano fish
    check_status "基础工具批量安装"
}

# 4. 设置登录密码 25257758，开放sshd登录
config_ssh() {
    print_message "4/6 设置SSH登录密码：25257758"
    local ssh_user="$USER"
    local sshd_config="$PREFIX/etc/ssh/sshd_config"

    # 使用 chpasswd 设置密码（比管道 passwd 更可靠）
    printf "%s:%s\n" "$ssh_user" "25257758" | chpasswd
    check_status "设置用户 $ssh_user 密码"

    # 清理所有已有的 PermitRootLogin 行，再追加正确配置，避免重复
    sed -i '/^#\?PermitRootLogin/d' "$sshd_config"
    echo "PermitRootLogin yes" >> "$sshd_config"
    check_status "配置 PermitRootLogin"

    # 确保 PasswordAuthentication 开启
    sed -i '/^#\?PasswordAuthentication/d' "$sshd_config"
    echo "PasswordAuthentication yes" >> "$sshd_config"
    check_status "配置 PasswordAuthentication"

    # 加载 termux-services 环境变量，确保 sv 命令可用
    if [ -f "$PREFIX/etc/profile.d/termux-services.sh" ]; then
        . "$PREFIX/etc/profile.d/termux-services.sh"
    fi

    # 设置ssh开机自启并立即启动
    sv-enable sshd
    check_status "设置 sshd 开机自启"

    sv up sshd
    check_status "启动 sshd 服务"

    print_message "SSH服务配置完成"
}

# 5. 克隆termux-setup仓库并执行初始化脚本
clone_run_setup() {
    print_message "5/6 拉取 termux-setup 仓库"
    cd "$TEMP_DIR"
    git clone https://github.com/tiiime/termux-setup.git
    check_status "仓库克隆"

    print_message "执行仓库初始化脚本 setup.sh"
    cd termux-setup
    chmod +x setup.sh
    ./setup.sh
    check_status "仓库配置脚本执行完成"
}

# 主流程
main() {
    set_aliyun_mirror
    system_full_upgrade
    install_base_deps
    config_ssh
    clone_run_setup

    print_message "6/6 全部部署流程完成！"
    print_warning "SSH连接信息：端口8022，账号$USER，密码25257758"
    print_warning "连接示例：ssh $USER@云机IP -p 8022"
    print_warning "已预装工具：adb、wireguard-tools、curl、git、fish、sshd服务"
}

main
