Add uninstall.sh for one-click removal
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 云端浏览器一键卸载脚本
|
||||
# 安装路径: /opt/cloud-browser
|
||||
# 运行用户: root
|
||||
#
|
||||
set -eu
|
||||
|
||||
INSTALL_DIR="/opt/cloud-browser"
|
||||
FORCE=0
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
log() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||||
err() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
|
||||
|
||||
usage() {
|
||||
echo "用法: bash uninstall.sh [-y]"
|
||||
echo " -y 跳过确认,直接删除"
|
||||
}
|
||||
|
||||
while getopts ":yh" opt; do
|
||||
case "$opt" in
|
||||
y) FORCE=1 ;;
|
||||
h) usage; exit 0 ;;
|
||||
*) usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
err "请使用 root 用户运行此脚本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "${INSTALL_DIR}" ]; then
|
||||
warn "目录不存在: ${INSTALL_DIR},无需卸载"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "即将卸载云端浏览器:"
|
||||
echo " - 停止并删除 Docker 容器"
|
||||
echo " - 删除本地构建的镜像"
|
||||
echo " - 删除目录 ${INSTALL_DIR}(含 data 账号数据)"
|
||||
echo ""
|
||||
|
||||
if [ "$FORCE" -ne 1 ]; then
|
||||
printf "确认删除?输入 yes 继续: "
|
||||
read -r confirm
|
||||
if [ "$confirm" != "yes" ]; then
|
||||
log "已取消"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
stop_containers() {
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
warn "未检测到 Docker,跳过容器停止"
|
||||
return
|
||||
fi
|
||||
if [ ! -f "${INSTALL_DIR}/docker-compose.yml" ]; then
|
||||
warn "未找到 docker-compose.yml,跳过容器停止"
|
||||
return
|
||||
fi
|
||||
log "停止并删除容器..."
|
||||
(cd "${INSTALL_DIR}" && docker compose down -v --rmi local 2>/dev/null) \
|
||||
|| (cd "${INSTALL_DIR}" && docker compose down -v) \
|
||||
|| warn "容器停止失败,将继续删除文件"
|
||||
}
|
||||
|
||||
remove_directory() {
|
||||
log "删除安装目录 ${INSTALL_DIR} ..."
|
||||
rm -rf "${INSTALL_DIR}"
|
||||
}
|
||||
|
||||
main() {
|
||||
log "开始卸载云端浏览器..."
|
||||
stop_containers
|
||||
remove_directory
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 云端浏览器已卸载"
|
||||
echo "=========================================="
|
||||
echo " 如需重新安装:"
|
||||
echo " git clone https://git.bz121.com/dekun/cloud-browser.git ${INSTALL_DIR}"
|
||||
echo " bash ${INSTALL_DIR}/deploy.sh"
|
||||
echo "=========================================="
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user