#!/bin/bash

# vsftpd 离线安装脚本
# 使用方法：./vsftpd-offline-install.sh

set -e

echo "开始 vsftpd 离线安装..."

# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
    echo "请使用 root 权限运行此脚本"
    exit 1
fi

# 定义离线包目录
OFFLINE_DIR="./vsftpd-offline"
DEB_DIR="$OFFLINE_DIR/debs"

# 检查离线包是否存在
if [ ! -d "$OFFLINE_DIR" ]; then
    echo "错误：找不到离线包目录 $OFFLINE_DIR"
    echo "请先准备离线包，方法："
    echo "1. 在有网络的机器上运行："
    echo "   mkdir -p $DEB_DIR"
    echo "   cd $DEB_DIR"
    echo "   apt download vsftpd"
    echo "   apt download \$(apt-cache depends vsftpd | grep Depends | cut -d: -f2 | tr -d ' ')"
    echo "2. 将整个 $OFFLINE_DIR 目录拷贝到目标机器"
    exit 1
fi

# 安装 deb 包
echo "安装 vsftpd 及依赖包..."
cd "$DEB_DIR"
dpkg -i *.deb || apt-get install -f -y

# 检查安装状态
if systemctl is-active --quiet vsftpd; then
    echo "vsftpd 安装成功并已启动"
else
    echo "启动 vsftpd 服务..."
    systemctl start vsftpd
    systemctl enable vsftpd
fi

echo "vsftpd 离线安装完成！"
echo "配置文件位置: /etc/vsftpd.conf"
echo "服务状态: $(systemctl is-active vsftpd)"
