| 123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/bin/sh
- # 观澜·如东样板 v2 — 卸载 (Linux / macOS)
- # 用法: sh uninstall.sh 交互: 先打印计划, 问一次再执行
- # sh uninstall.sh --dry-run 只打印计划, 一个字节都不动
- # sh uninstall.sh --yes 不问(脚本/无人值守)
- # sh uninstall.sh --purge --yes 连 data/ outputs/ logs/ .venv/ 一起删
- # sh uninstall.sh --all --yes 连程序文件一起删(最后给收尾命令)
- # 默认只拆"本程序装上去的东西"(服务/自启/快捷方式/运行态/安装记录); 数据与产物一律保留。
- # ★P13:按模块安装/卸载 —— `--module <名[,名]>` 时逐模块调用该模块自带的同名脚本;
- # 其余参数原样透传;不带 --module 时**保持原行为**。
- MODULES_ARG=""
- _prev=""
- for _a in "$@"; do
- if [ "$_prev" = "--module" ]; then MODULES_ARG="$_a"; fi
- _prev="$_a"
- done
- if [ -n "$MODULES_ARG" ]; then
- _status=0
- _ifs=$IFS; IFS=','
- for _m in $MODULES_ARG; do
- if [ -x "$_m/uninstall.sh" ]; then
- sh "$_m/uninstall.sh" "$@" || _status=$?
- else
- echo "[X] 未知模块: $_m" >&2; _status=2
- fi
- done
- IFS=$_ifs
- exit $_status
- fi
- cd "$(dirname "$0")" || exit 1
- export PYTHONUTF8=1
- if [ -x ".venv/bin/python" ]; then
- exec ".venv/bin/python" "scripts/guanlan_uninstall.py" "$@"
- fi
- for c in python3.12 python3.13 python3.11 python3; do
- p=$(command -v $c 2>/dev/null) && exec "$p" "scripts/guanlan_uninstall.py" "$@"
- done
- echo "[X] 找不到 Python 3 (.venv 也已被删) —— 手工删掉本目录即可: rm -rf \"$(pwd)\"" >&2
- exit 2
|