fix: normalize deploy shell scripts to LF for Linux curl|bash
CRLF line endings broke manage.sh on Ubuntu (set -e and function syntax errors). Add .gitattributes to keep *.sh on LF in git. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+105
-105
@@ -1,105 +1,105 @@
|
||||
#!/usr/bin/env bash
|
||||
# deploy/lib/uninstall.sh — 停容器;可选删 volume;备份 .env;删除安装目录
|
||||
set -e
|
||||
set -u
|
||||
if [ -n "${BASH_VERSION:-}" ]; then
|
||||
set -o pipefail
|
||||
fi
|
||||
|
||||
LIB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=common.sh
|
||||
source "${LIB_DIR}/common.sh"
|
||||
|
||||
main_uninstall() {
|
||||
require_root
|
||||
|
||||
local root=""
|
||||
if ! root="$(resolve_repo_root)"; then
|
||||
if [[ -d "${INSTALL_ROOT}" ]]; then
|
||||
root="${INSTALL_ROOT}"
|
||||
else
|
||||
die "未找到安装目录 ${INSTALL_ROOT}"
|
||||
fi
|
||||
fi
|
||||
REPO_ROOT="${root}"
|
||||
|
||||
echo ""
|
||||
echo "将卸载 比特骆驼行情采集分析 (market_intel):"
|
||||
echo " - 停止并移除 Compose 容器"
|
||||
echo " - 备份 .env 到 ${BACKUP_ROOT}"
|
||||
echo " - 删除安装目录: ${INSTALL_ROOT}"
|
||||
echo " - 可选:删除 data volume"
|
||||
echo ""
|
||||
if ! confirm_yes "确认卸载并删除 ${INSTALL_ROOT}?"; then
|
||||
log "已取消卸载"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local remove_volume=0
|
||||
if confirm_yes "是否同时删除 Docker data volume (mi_data)?"; then
|
||||
remove_volume=1
|
||||
fi
|
||||
|
||||
local stamp backup_dir
|
||||
stamp="$(TZ="${TZ_NAME}" date +%Y%m%d-%H%M%S)"
|
||||
backup_dir="${BACKUP_ROOT}/pre-uninstall-${stamp}"
|
||||
mkdir -p "${backup_dir}"
|
||||
|
||||
step "备份 .env"
|
||||
if [[ -f "${REPO_ROOT}/.env" ]]; then
|
||||
cp -a "${REPO_ROOT}/.env" "${backup_dir}/.env"
|
||||
fi
|
||||
{
|
||||
echo "created_at=${stamp}"
|
||||
echo "install_root=${INSTALL_ROOT}"
|
||||
echo "remove_volume=${remove_volume}"
|
||||
echo "action=rm_rf_install_root"
|
||||
} >"${backup_dir}/uninstall.manifest"
|
||||
|
||||
step "停止并移除容器"
|
||||
if command -v docker >/dev/null 2>&1 && [[ -f "${REPO_ROOT}/docker-compose.yml" ]]; then
|
||||
if [[ "${remove_volume}" -eq 1 ]]; then
|
||||
(cd "${REPO_ROOT}" && docker compose down -v) || true
|
||||
else
|
||||
(cd "${REPO_ROOT}" && docker compose down) || true
|
||||
fi
|
||||
fi
|
||||
|
||||
step "删除安装目录 ${INSTALL_ROOT}"
|
||||
if [[ -d "${INSTALL_ROOT}" ]]; then
|
||||
case "${INSTALL_ROOT}" in
|
||||
/opt/market_intel|/opt/market_intel/)
|
||||
rm -rf "${INSTALL_ROOT}"
|
||||
log "已删除: ${INSTALL_ROOT}"
|
||||
;;
|
||||
*)
|
||||
if [[ "${ALLOW_UNSAFE_UNINSTALL:-}" == "1" ]]; then
|
||||
rm -rf "${INSTALL_ROOT}"
|
||||
log "已删除(ALLOW_UNSAFE_UNINSTALL=1): ${INSTALL_ROOT}"
|
||||
else
|
||||
die "拒绝删除非默认路径 ${INSTALL_ROOT};若确认,设置 ALLOW_UNSAFE_UNINSTALL=1"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
log "安装目录不存在,跳过删除"
|
||||
fi
|
||||
|
||||
local leftover
|
||||
for leftover in /opt/market_intel.removed.* /opt/market_intel.old.*; do
|
||||
if [[ -e "${leftover}" ]]; then
|
||||
rm -rf "${leftover}"
|
||||
log "已清理残留: ${leftover}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "卸载完成."
|
||||
echo " 配置备份: ${backup_dir}"
|
||||
echo " volume 已删除: $([[ ${remove_volume} -eq 1 ]] && echo yes || echo no)"
|
||||
echo ""
|
||||
echo "重新部署:"
|
||||
echo " curl -fsSL https://git.bz121.com/dekun/market_intel/raw/branch/main/deploy/manage.sh | bash"
|
||||
}
|
||||
|
||||
main_uninstall "$@"
|
||||
#!/usr/bin/env bash
|
||||
# deploy/lib/uninstall.sh — 停容器;可选删 volume;备份 .env;删除安装目录
|
||||
set -e
|
||||
set -u
|
||||
if [ -n "${BASH_VERSION:-}" ]; then
|
||||
set -o pipefail
|
||||
fi
|
||||
|
||||
LIB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=common.sh
|
||||
source "${LIB_DIR}/common.sh"
|
||||
|
||||
main_uninstall() {
|
||||
require_root
|
||||
|
||||
local root=""
|
||||
if ! root="$(resolve_repo_root)"; then
|
||||
if [[ -d "${INSTALL_ROOT}" ]]; then
|
||||
root="${INSTALL_ROOT}"
|
||||
else
|
||||
die "未找到安装目录 ${INSTALL_ROOT}"
|
||||
fi
|
||||
fi
|
||||
REPO_ROOT="${root}"
|
||||
|
||||
echo ""
|
||||
echo "将卸载 比特骆驼行情采集分析 (market_intel):"
|
||||
echo " - 停止并移除 Compose 容器"
|
||||
echo " - 备份 .env 到 ${BACKUP_ROOT}"
|
||||
echo " - 删除安装目录: ${INSTALL_ROOT}"
|
||||
echo " - 可选:删除 data volume"
|
||||
echo ""
|
||||
if ! confirm_yes "确认卸载并删除 ${INSTALL_ROOT}?"; then
|
||||
log "已取消卸载"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local remove_volume=0
|
||||
if confirm_yes "是否同时删除 Docker data volume (mi_data)?"; then
|
||||
remove_volume=1
|
||||
fi
|
||||
|
||||
local stamp backup_dir
|
||||
stamp="$(TZ="${TZ_NAME}" date +%Y%m%d-%H%M%S)"
|
||||
backup_dir="${BACKUP_ROOT}/pre-uninstall-${stamp}"
|
||||
mkdir -p "${backup_dir}"
|
||||
|
||||
step "备份 .env"
|
||||
if [[ -f "${REPO_ROOT}/.env" ]]; then
|
||||
cp -a "${REPO_ROOT}/.env" "${backup_dir}/.env"
|
||||
fi
|
||||
{
|
||||
echo "created_at=${stamp}"
|
||||
echo "install_root=${INSTALL_ROOT}"
|
||||
echo "remove_volume=${remove_volume}"
|
||||
echo "action=rm_rf_install_root"
|
||||
} >"${backup_dir}/uninstall.manifest"
|
||||
|
||||
step "停止并移除容器"
|
||||
if command -v docker >/dev/null 2>&1 && [[ -f "${REPO_ROOT}/docker-compose.yml" ]]; then
|
||||
if [[ "${remove_volume}" -eq 1 ]]; then
|
||||
(cd "${REPO_ROOT}" && docker compose down -v) || true
|
||||
else
|
||||
(cd "${REPO_ROOT}" && docker compose down) || true
|
||||
fi
|
||||
fi
|
||||
|
||||
step "删除安装目录 ${INSTALL_ROOT}"
|
||||
if [[ -d "${INSTALL_ROOT}" ]]; then
|
||||
case "${INSTALL_ROOT}" in
|
||||
/opt/market_intel|/opt/market_intel/)
|
||||
rm -rf "${INSTALL_ROOT}"
|
||||
log "已删除: ${INSTALL_ROOT}"
|
||||
;;
|
||||
*)
|
||||
if [[ "${ALLOW_UNSAFE_UNINSTALL:-}" == "1" ]]; then
|
||||
rm -rf "${INSTALL_ROOT}"
|
||||
log "已删除(ALLOW_UNSAFE_UNINSTALL=1): ${INSTALL_ROOT}"
|
||||
else
|
||||
die "拒绝删除非默认路径 ${INSTALL_ROOT};若确认,设置 ALLOW_UNSAFE_UNINSTALL=1"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
log "安装目录不存在,跳过删除"
|
||||
fi
|
||||
|
||||
local leftover
|
||||
for leftover in /opt/market_intel.removed.* /opt/market_intel.old.*; do
|
||||
if [[ -e "${leftover}" ]]; then
|
||||
rm -rf "${leftover}"
|
||||
log "已清理残留: ${leftover}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "卸载完成."
|
||||
echo " 配置备份: ${backup_dir}"
|
||||
echo " volume 已删除: $([[ ${remove_volume} -eq 1 ]] && echo yes || echo no)"
|
||||
echo ""
|
||||
echo "重新部署:"
|
||||
echo " curl -fsSL https://git.bz121.com/dekun/market_intel/raw/branch/main/deploy/manage.sh | bash"
|
||||
}
|
||||
|
||||
main_uninstall "$@"
|
||||
|
||||
Reference in New Issue
Block a user