#!/usr/bin/env bash set -euo pipefail SERVICE_NAME="${SERVICE_NAME:-hw}" APP_PORT="${APP_PORT:-8000}" HEALTHCHECK_URL="${HEALTHCHECK_URL:-http://127.0.0.1/health}" fail() { printf 'Verification failed: %s\n' "$1" >&2 exit 1 } main() { if ! systemctl is-active --quiet "$SERVICE_NAME"; then fail "systemd service '$SERVICE_NAME' is not active" fi if ! ss -tln | grep -q ":${APP_PORT} "; then fail "nothing is listening on TCP port ${APP_PORT}" fi health_payload="$(curl --fail --silent --show-error --max-time 10 "$HEALTHCHECK_URL")" || fail "healthcheck request failed: $HEALTHCHECK_URL" if ! printf '%s' "$health_payload" | grep -q '"status":"ok"\|"status": "ok"'; then fail "healthcheck response does not contain status=ok" fi printf 'Verification succeeded.\n' printf 'Service: %s\n' "$SERVICE_NAME" printf 'Port: %s\n' "$APP_PORT" printf 'Healthcheck: %s\n' "$HEALTHCHECK_URL" } main "$@"