#!/bin/bash

# 1. 环境检查
if [ "$EUID" -ne 0 ]; then
  echo "请使用 sudo 运行此脚本！"
  exit 1
fi

# 获取当前实际登录的普通用户名（用于 msfdb init）
REAL_USER=${SUDO_USER:-$USER}
START_DIR=$(pwd)

echo "--- 1. 开始安装当前目录下的所有 .deb 包 ---"
deb_files=(*.deb)
if [ -e "${deb_files[0]}" ]; then
    for deb in "${deb_files[@]}"; do
        echo "[*] 正在安装: $deb ..."
        dpkg -i "$deb" || (echo "[!] 修复依赖..." && apt-get install -f -y)
    done
else
    echo "未发现 .deb 文件，跳过此步。"
fi

echo -e "\n--- 2. 配置 Python & 工具软连接 ---"

# dirsearch 配置
if [ -d "dirsearch" ]; then
    echo "[+] 配置 dirsearch..."
    cd "$START_DIR/dirsearch"
    chmod +x dirsearch.py
    ln -sf "$(pwd)/dirsearch.py" /usr/local/bin/dirsearch
    # 在当前 conda 环境安装依赖
    pip install -r requirements.txt
fi

# exploitdb 配置
if [ -d "$START_DIR/exploitdb" ]; then
    echo "[+] 配置 exploitdb (searchsploit)..."
    cd "$START_DIR/exploitdb"
    ln -sf "$(pwd)/searchsploit" /usr/local/bin/searchsploit
fi

# sqlmap 配置
if [ -d "$START_DIR/sqlmap" ]; then
    echo "[+] 配置 sqlmap..."
    cd "$START_DIR/sqlmap"
    chmod +x sqlmap.py
    ln -sf "$(pwd)/sqlmap.py" /usr/local/bin/sqlmap
fi

echo -e "\n--- 3. 安装基础工具与 Metasploit ---"
cd "$START_DIR"
apt-get update
# 下载并安装 curl (根据你的流程)
apt-get download curl && dpkg -i curl_*.deb || apt-get install -y curl

# 安装 Metasploit
echo "[+] 正在下载并安装 Metasploit Framework..."
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod 755 msfinstall
./msfinstall

echo -e "\n--- 4. 初始化数据库 (以普通用户 $REAL_USER 身份) ---"
# 以普通用户身份运行 msfdb init
su - "$REAL_USER" -c "msfdb init"

echo -e "\n------------------------------------------------"
echo "✅ 所有工具安装完成！"
echo "请手动执行以下命令恢复环境："
echo "1. exit (如果还在 root 环境)"
echo "2. conda activate hexstrike"
echo "------------------------------------------------"