health-check/setup.fish
SantosFC c448a3c01e Melhorias no fluxo de instalação, suporte Fish shell e correção do timer
- setup.fish + install_systemd.fish: versões Fish shell dos scripts de instalação
- setup.sh/.fish: verifica pré-requisitos, valida URL, confirma antes de sobrescrever config
- install_systemd.sh/.fish: executa ping de teste após instalar
- healthcheck.py: fallback para leitura do config file e ping /fail em caso de erro
- chamado-health.timer: OnCalendar=minutely para disparar exatamente a cada 1 minuto
2026-06-05 15:29:54 -03:00

64 lines
1.8 KiB
Fish

#!/usr/bin/env fish
set REPO_URL "https://github.com/SantosFC/chamado-health.git"
set INSTALL_DIR "$HOME/src/chamado-health"
set CONFIG_FILE "$HOME/.config/chamado-health"
# 1. Verificar pré-requisitos
for cmd in git python3 systemctl loginctl
if not command -q $cmd
echo "ERRO: '$cmd' não encontrado. Instale e tente novamente."
exit 1
end
end
# 2. Capturar URL
if not set -q HEALTHCHECK_URL
read -P "HEALTHCHECK_URL: " HEALTHCHECK_URL
end
# 3. Validar URL antes de prosseguir
echo "Validando URL..."
if not python3 -c "
import urllib.request, sys
try:
urllib.request.urlopen('$HEALTHCHECK_URL', timeout=10)
print('URL acessível.')
except Exception as e:
print(f'AVISO: não foi possível alcançar a URL: {e}', file=sys.stderr)
sys.exit(1)
" 2>/dev/null
echo "AVISO: não foi possível alcançar a URL informada."
read -P "Continuar mesmo assim? [s/N] " confirm
if not string match -qi 's' $confirm
echo "Instalação cancelada."
exit 1
end
end
# 4. Clonar ou atualizar repositório
if test -d "$INSTALL_DIR/.git"
git -C $INSTALL_DIR pull --ff-only
else
git clone $REPO_URL $INSTALL_DIR
end
# 5. Salvar configuração (confirmando antes de sobrescrever)
if test -f $CONFIG_FILE
echo "Configuração existente encontrada em $CONFIG_FILE."
read -P "Deseja substituir? [s/N] " confirm
if string match -qi 's' $confirm
echo "HEALTHCHECK_URL=$HEALTHCHECK_URL" > $CONFIG_FILE
echo "Configuração salva em $CONFIG_FILE."
else
echo "Configuração mantida. Prosseguindo com valor existente."
end
else
echo "HEALTHCHECK_URL=$HEALTHCHECK_URL" > $CONFIG_FILE
echo "Configuração salva em $CONFIG_FILE."
end
fish "$INSTALL_DIR/install_systemd.fish"
loginctl enable-linger
echo "Linger habilitado — o timer executa mesmo sem sessão ativa."