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