Como Remover caso tenha algo errado
This commit is contained in:
parent
62dc569bd2
commit
eb4f93af12
|
|
@ -0,0 +1,96 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# DESINSTALADOR DO SERVIÇO PROXY-SINC
|
||||||
|
#
|
||||||
|
# Descrição: Este script remove de forma segura todos os componentes do serviço
|
||||||
|
# de versionamento automático Proxy-Sinc do sistema.
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# --- Variáveis de Configuração ---
|
||||||
|
REPO_DIR="/opt/config_repo"
|
||||||
|
SCRIPT_INSTALL_DIR="/usr/local/sbin"
|
||||||
|
SYSTEMD_DIR="/etc/systemd/system"
|
||||||
|
MAN_DIR="/usr/share/man/man8"
|
||||||
|
CONFIG_DIR="/etc/proxy-sinc"
|
||||||
|
|
||||||
|
# --- Ficheiros a serem removidos ---
|
||||||
|
SCRIPT_FILE="${SCRIPT_INSTALL_DIR}/commit_configs.sh"
|
||||||
|
UPDATE_SCRIPT_FILE="${SCRIPT_INSTALL_DIR}/proxy-sinc-update"
|
||||||
|
SERVICE_FILE="${SYSTEMD_DIR}/proxy-sinc.service"
|
||||||
|
TIMER_FILE="${SYSTEMD_DIR}/proxy-sinc.timer"
|
||||||
|
UPDATE_SERVICE_FILE="${SYSTEMD_DIR}/proxy-sinc-update.service"
|
||||||
|
UPDATE_TIMER_FILE="${SYSTEMD_DIR}/proxy-sinc-update.timer"
|
||||||
|
MAN_FILE="${MAN_DIR}/proxy-sinc.8.gz"
|
||||||
|
|
||||||
|
# --- Funções de Ajuda ---
|
||||||
|
info() { echo -e "\e[32m[INFO]\e[0m $1"; }
|
||||||
|
error() { echo -e "\e[31m[ERRO]\e[0m $1" >&2; exit 1; }
|
||||||
|
warn() { echo -e "\e[33m[AVISO]\e[0m $1"; }
|
||||||
|
|
||||||
|
# --- Início da Execução ---
|
||||||
|
info "Iniciando a desinstalação do serviço Proxy-Sinc..."
|
||||||
|
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
error "Este script precisa de ser executado como root."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- 1. Parar e Desativar os Serviços systemd ---
|
||||||
|
info "A parar e a desativar os timers do systemd..."
|
||||||
|
systemctl stop proxy-sinc.timer 2>/dev/null || true
|
||||||
|
systemctl disable proxy-sinc.timer 2>/dev/null || true
|
||||||
|
systemctl stop proxy-sinc-update.timer 2>/dev/null || true
|
||||||
|
systemctl disable proxy-sinc-update.timer 2>/dev/null || true
|
||||||
|
info "Timers parados e desativados."
|
||||||
|
|
||||||
|
# --- 2. Remover os Ficheiros do systemd ---
|
||||||
|
info "A remover os ficheiros de serviço do systemd..."
|
||||||
|
rm -f "$SERVICE_FILE" "$TIMER_FILE" "$UPDATE_SERVICE_FILE" "$UPDATE_TIMER_FILE"
|
||||||
|
info "A recarregar o daemon do systemd..."
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
# --- 3. Remover os Scripts e a Man Page ---
|
||||||
|
info "A remover os scripts e a página de manual..."
|
||||||
|
rm -f "$SCRIPT_FILE" "$UPDATE_SCRIPT_FILE" "$MAN_FILE"
|
||||||
|
info "Ficheiros de sistema removidos com sucesso."
|
||||||
|
|
||||||
|
# --- 4. Remover o Diretório de Configuração (Com Confirmação) ---
|
||||||
|
if [ -d "$CONFIG_DIR" ]; then
|
||||||
|
read -p "Deseja remover o diretório de configuração ${CONFIG_DIR}? (Isto irá apagar os seus ficheiros git.conf e paths.conf) [s/n]: " choice
|
||||||
|
case "$choice" in
|
||||||
|
s|S )
|
||||||
|
info "A remover o diretório de configuração ${CONFIG_DIR}..."
|
||||||
|
rm -rf "$CONFIG_DIR"
|
||||||
|
info "Diretório de configuração removido."
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
warn "O diretório de configuração ${CONFIG_DIR} não foi removido."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- 5. Remover o Repositório Local (Com Confirmação) ---
|
||||||
|
if [ -d "$REPO_DIR" ]; then
|
||||||
|
read -p "Deseja remover o repositório Git local ${REPO_DIR}? (AVISO: Isto não apaga o repositório remoto no Gitea) [s/n]: " choice
|
||||||
|
case "$choice" in
|
||||||
|
s|S )
|
||||||
|
info "A remover o diretório do repositório ${REPO_DIR}..."
|
||||||
|
rm -rf "$REPO_DIR"
|
||||||
|
info "Diretório do repositório removido."
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
warn "O diretório do repositório ${REPO_DIR} não foi removido."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Conclusão ---
|
||||||
|
echo ""
|
||||||
|
info "======================================================================"
|
||||||
|
info " Desinstalação Concluída!"
|
||||||
|
info "======================================================================"
|
||||||
|
info "Todos os componentes do serviço Proxy-Sinc foram removidos do sistema."
|
||||||
|
info "Agora você pode executar o script de instalação da nova versão com segurança."
|
||||||
|
info ""
|
||||||
Loading…
Reference in New Issue