mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
52 lines
1.9 KiB
Bash
Executable File
52 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Testes sem efeitos colaterais para a porta de entrada de produção.
|
|
|
|
set -uo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
SCRIPT="$ROOT_DIR/ubuntu-production-installer.sh"
|
|
FAILS=0
|
|
|
|
check() {
|
|
local descricao="$1"
|
|
shift
|
|
if "$@"; then
|
|
printf ' ✓ %s\n' "$descricao"
|
|
else
|
|
printf ' ✗ %s\n' "$descricao"
|
|
FAILS=$((FAILS + 1))
|
|
fi
|
|
}
|
|
|
|
echo "instalador Ubuntu de produção"
|
|
check "sintaxe Bash válida" bash -n "$SCRIPT"
|
|
|
|
ajuda="$(bash "$SCRIPT" --help 2>&1)"
|
|
check "--help termina sem preparar o host" test "$?" -eq 0
|
|
check "ajuda explica que pergunta somente o domínio" grep -q "pergunta somente o domínio" <<<"$ajuda"
|
|
check "ajuda distingue os serviços locais" grep -q "Serviços locais em Docker" <<<"$ajuda"
|
|
check "ajuda inclui o Supabase self-hosted" grep -q "Supabase self-hosted" <<<"$ajuda"
|
|
check "ajuda documenta --domain" grep -q -- "--domain crm.suaempresa.com.br" <<<"$ajuda"
|
|
check "ajuda documenta amd64 e ARM64" grep -q "x86_64/amd64 ou ARM64/aarch64" <<<"$ajuda"
|
|
|
|
saida_invalida="$(bash "$SCRIPT" --desconhecido 2>&1)"
|
|
rc_invalido=$?
|
|
check "opção desconhecida é recusada" test "$rc_invalido" -eq 2
|
|
check "recusa mostra o uso" grep -q "Uso: bash ubuntu-production-installer.sh" <<<"$saida_invalida"
|
|
|
|
check "delega ao instalador single-server" \
|
|
grep -q 'hostgator-setup-kit/install-single-server.sh' "$SCRIPT"
|
|
check "guarda de arquitetura permite amd64 e ARM64" \
|
|
grep -q 'x86_64|amd64|aarch64|arm64' "$SCRIPT"
|
|
check "recusa explica as duas arquiteturas publicadas" \
|
|
grep -q 'linux/amd64 e linux/arm64' "$SCRIPT"
|
|
check "não mantém uma segunda lista de variáveis do .env" \
|
|
bash -c '! grep -qE "^(DOMAIN|SUPABASE_DB_URL|WAHA_API_KEY|INTERNAL_SECRET)=" "$1"' _ "$SCRIPT"
|
|
|
|
if [[ "$FAILS" -ne 0 ]]; then
|
|
printf '\n%d teste(s) falharam.\n' "$FAILS"
|
|
exit 1
|
|
fi
|
|
|
|
printf '\nTodos os testes do instalador Ubuntu passaram.\n'
|