#!/bin/bash
#===============================================================================
# Armbian 精简清理脚本
# 适用硬件:Intel Atom Z8350 + Realtek RTL8168 网卡
# 使用场景:Docker 容器 + 无 WiFi/蓝牙
#===============================================================================

set -e

echo "=========================================="
echo "  Armbian 精简清理脚本"
echo "  硬件:Z8350 + RTL8168"
echo "=========================================="
echo ""

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 记录清理前的空间
echo -e "${YELLOW}[信息]${NC} 清理前空间使用情况:"
df -h / | tail -1
echo ""

#===============================================================================
# 1. APT 缓存清理
#===============================================================================
echo -e "${YELLOW}[1/8]${NC} 清理 APT 缓存..."
apt-get clean -y
apt-get autoclean -y
rm -rf /var/cache/apt/pkgcache.bin /var/cache/apt/srcpkgcache.bin
rm -rf /var/lib/apt/lists/*
echo -e "${GREEN}✓${NC} APT 缓存清理完成"
echo ""

#===============================================================================
# 2. 系统日志清理
#===============================================================================
echo -e "${YELLOW}[2/8]${NC} 清理系统日志..."
journalctl --vacuum-size=50M
echo -e "${GREEN}✓${NC} 系统日志清理完成"
echo ""

#===============================================================================
# 3. 不用的固件清理
#===============================================================================
echo -e "${YELLOW}[3/8]${NC} 清理不用的固件..."

# AMD 显卡固件(Z8350 不用)
rm -rf /usr/lib/firmware/amdgpu/
rm -rf /usr/lib/firmware/radeon/

# Intel Xe 显卡固件(Z8350 是 Gen8,不是 Xe 架构)
rm -rf /usr/lib/firmware/xe/

# Intel 新款核显固件(Z8350 不需要)
rm -f /usr/lib/firmware/i915/mtl_*.bin    # Meteor Lake
rm -f /usr/lib/firmware/i915/dgmk_*.bin   # DG2
rm -f /usr/lib/firmware/i915/mtl_*.bin    # Meteor Lake

# QLogic 网卡固件
rm -rf /usr/lib/firmware/qed/

# LiquidIO 网卡固件
rm -rf /usr/lib/firmware/liquidio/

# NXP DPAA2 固件(非 NXP 平台)
rm -rf /usr/lib/firmware/dpaa2/

# 展锐 WiFi 固件
rm -rf /usr/lib/firmware/uwe5622/

# Phantoms 固件
rm -f /usr/lib/firmware/phanfw.bin

# Intel 蓝牙固件(如无蓝牙设备)
rm -f /usr/lib/firmware/intel/ibt-*

# Intel IPU 摄像头固件
rm -rf /usr/lib/firmware/intel/ipu/

# Intel VPU 视频处理固件
rm -rf /usr/lib/firmware/intel/vpu/

# Mellanox 网卡固件
rm -rf /usr/lib/firmware/mellanox/

# Netronome 网卡固件
rm -rf /usr/lib/firmware/netronome/

# Broadcom 网卡固件
rm -rf /usr/lib/firmware/bnx2x/
rm -rf /usr/lib/firmware/brcm/

# Chelsio 网卡固件
rm -rf /usr/lib/firmware/cxgb4/

# Marvell 固件
rm -rf /usr/lib/firmware/mrvl/

# NVIDIA 固件
rm -rf /usr/lib/firmware/nvidia/

# MediaTek 固件
rm -rf /usr/lib/firmware/mediatek/

# Realtek WiFi 固件(保留 rtl_nic 有线网卡固件)
rm -rf /usr/lib/firmware/rtw89/
rm -rf /usr/lib/firmware/rtl8723/
rm -rf /usr/lib/firmware/rtl8821/

# Atheros/Qualcomm WiFi 固件
rm -rf /usr/lib/firmware/ath10k/
rm -rf /usr/lib/firmware/ath11k/
rm -rf /usr/lib/firmware/ath12k/
rm -rf /usr/lib/firmware/ar3k/
rm -rf /usr/lib/firmware/ar9170/
rm -rf /usr/lib/firmware/ath6k/
rm -rf /usr/lib/firmware/ath9k/

# Intel WiFi 固件
rm -rf /usr/lib/firmware/intel/iwlwifi/

# Qualcomm 平台固件(非 Qualcomm 平台)
rm -rf /usr/lib/firmware/qcom/

echo -e "${GREEN}✓${NC} 固件清理完成"
echo ""

#===============================================================================
# 4. 不用的内核模块清理
#===============================================================================
echo -e "${YELLOW}[4/8]${NC} 清理不用的内核模块..."

KERNEL_VER=$(ls /usr/lib/modules/ | head -1)
MODULES_DIR="/usr/lib/modules/${KERNEL_VER}/kernel"

# 不用的网卡驱动(保留 r8169)
rm -rf ${MODULES_DIR}/drivers/net/ethernet/{intel,broadcom,mellanox,netronome,qlogic,chelsio,sfc}/
rm -rf ${MODULES_DIR}/drivers/net/wireless/

# 不用的文件系统(保留 ext4)
rm -rf ${MODULES_DIR}/fs/{ocfs2,gfs2,ceph,afs,nfs,nfsd}/

# 不用的 GPU 驱动(保留 i915)
rm -rf ${MODULES_DIR}/drivers/gpu/drm/{amdgpu,radeon,xe,nouveau}/

# 不用的 KVM 虚拟化
rm -rf ${MODULES_DIR}/arch/x86/kvm/

# 不用的 InfiniBand
rm -rf ${MODULES_DIR}/drivers/infiniband/

# 不用的 SCSI 特殊驱动
rm -rf ${MODULES_DIR}/drivers/scsi/{lpfc,qla2xxx,bfa}/

# 不用的加速器
rm -rf ${MODULES_DIR}/drivers/accel/

# 不用的 Thunderbolt
rm -rf ${MODULES_DIR}/drivers/thunderbolt/

# 更新模块依赖
depmod -a

echo -e "${GREEN}✓${NC} 内核模块清理完成"
echo ""

#===============================================================================
# 5. 文档和手册清理
#===============================================================================
echo -e "${YELLOW}[5/8]${NC} 清理文档和手册..."
rm -rf /usr/share/doc/*
rm -rf /usr/share/man/*
rm -rf /usr/share/info/*
echo -e "${GREEN}✓${NC} 文档清理完成"
echo ""

#===============================================================================
# 6. Zsh 插件 Git 数据清理
#===============================================================================
echo -e "${YELLOW}[6/8]${NC} 清理 Zsh 插件 Git 数据..."
# rm -rf /root/.zsh/*/\.git 2>/dev/null || true
# echo -e "${GREEN}✓${NC} Zsh Git 数据清理完成"
echo ""

#===============================================================================
# 7. Docker/Containerd 清理(可选)
#===============================================================================
echo -e "${YELLOW}[7/8]${NC} 清理 Docker 缓存..."
if command -v docker &> /dev/null; then
    docker system prune -f 2>/dev/null || true
    echo -e "${GREEN}✓${NC} Docker 缓存清理完成"
else
    echo -e "${YELLOW}⊘${NC} Docker 未安装,跳过"
fi
echo ""

#===============================================================================
# 8. 其他临时文件清理
#===============================================================================
echo -e "${YELLOW}[8/8]${NC} 清理临时文件..."
rm -rf /tmp/*
rm -rf /var/tmp/*
rm -rf /var/cache/debconf/*.dat-old
echo -e "${GREEN}✓${NC} 临时文件清理完成"
echo ""

#===============================================================================
# 清理完成
#===============================================================================
echo "=========================================="
echo -e "${GREEN}  清理完成!${NC}"
echo "=========================================="
echo ""
echo -e "${YELLOW}清理后空间使用情况:${NC}"
df -h / | tail -1
echo ""
echo -e "${YELLOW}固件目录大小:${NC}"
du -sh /usr/lib/firmware/
echo ""
echo -e "${YELLOW}建议操作:${NC}"
echo "  1. 重启系统:sudo reboot"
echo "  2. 验证网络:ping -c 3 8.8.8.8"
echo "  3. 验证核显:lsmod | grep i915"
echo ""