From be197ad2cb81db5d242308d0ca2f0a076749efac Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Mon, 1 Dec 2025 00:24:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=8D=B8=E8=BD=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20(--uninstall)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 --uninstall 参数支持一键卸载 - 卸载 CUPS、Avahi、CUPS-PDF 等组件 - 清理配置文件、日志、中文模板 - 添加 --help 参数显示帮助信息 用法: ./setup_cups.sh # 安装 ./setup_cups.sh --uninstall # 卸载 ./setup_cups.sh --help # 帮助 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- setup_cups.sh | 97 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 3 deletions(-) diff --git a/setup_cups.sh b/setup_cups.sh index 8e746fb..4be4d18 100755 --- a/setup_cups.sh +++ b/setup_cups.sh @@ -3,7 +3,9 @@ # CUPS 打印服务一键配置脚本 # 适用于 Armbian / Debian / Ubuntu # 作者: 自动生成 -# 用法: chmod +x setup_cups.sh && ./setup_cups.sh +# 用法: +# 安装: chmod +x setup_cups.sh && ./setup_cups.sh +# 卸载: ./setup_cups.sh --uninstall # set -e @@ -1027,5 +1029,94 @@ main() { echo "" } -# 运行主函数 -main +# 卸载函数 +uninstall() { + echo -e "${RED}" + echo "╔══════════════════════════════════════════════════════════╗" + echo "║ CUPS 打印服务卸载程序 ║" + echo "╚══════════════════════════════════════════════════════════╝" + echo -e "${NC}" + echo "" + + check_root + + echo -e "${YELLOW}即将卸载以下组件:${NC}" + echo " - CUPS 打印服务" + echo " - Avahi 服务 (AirPrint)" + echo " - CUPS-PDF 虚拟打印机" + echo " - 中文界面模板" + echo " - 所有打印任务和配置" + echo "" + read -p "确定要卸载吗? [y/N]: " confirm < /dev/tty + confirm=${confirm:-N} + + if [[ ! "$confirm" =~ ^[Yy]$ ]]; then + echo "已取消" + exit 0 + fi + + echo "" + info "开始卸载..." + + # 停止服务 + info "停止服务..." + systemctl stop cups 2>/dev/null || true + systemctl stop avahi-daemon 2>/dev/null || true + systemctl disable cups 2>/dev/null || true + systemctl disable avahi-daemon 2>/dev/null || true + + # 卸载软件包 + info "卸载软件包..." + apt remove --purge -y cups cups-common cups-client cups-bsd cups-core-drivers \ + cups-daemon cups-filters cups-ipp-utils cups-pdf cups-ppdc \ + avahi-daemon 2>/dev/null || true + + # 删除配置和数据 + info "删除配置和数据..." + rm -rf /etc/cups + rm -rf /var/spool/cups + rm -rf /var/spool/cups-pdf + rm -rf /var/log/cups + rm -rf /usr/share/cups/templates-zh_CN + rm -rf /usr/share/cups/templates-zh + rm -rf /usr/share/cups/templates-en-backup + + # 清理依赖 + info "清理依赖..." + apt autoremove -y 2>/dev/null || true + + echo "" + echo -e "${GREEN}╔══════════════════════════════════════════════════════════╗${NC}" + echo -e "${GREEN}║ 卸载完成! ║${NC}" + echo -e "${GREEN}╚══════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# 显示帮助 +show_help() { + echo "CUPS 打印服务一键配置脚本" + echo "" + echo "用法:" + echo " $0 安装 CUPS 打印服务" + echo " $0 --uninstall 卸载 CUPS 打印服务" + echo " $0 --help 显示此帮助信息" + echo "" +} + +# 解析参数并运行 +case "${1:-}" in + --uninstall|-u) + uninstall + ;; + --help|-h) + show_help + ;; + "") + main + ;; + *) + echo "未知参数: $1" + show_help + exit 1 + ;; +esac