#!/usr/bin/env bash

set -Eeuo pipefail
umask 077

INSTANCE=${1:-}
case "$INSTANCE" in
    56)
        MYSQL=/opt/mysql/5.6.51/bin/mysql
        DEFAULTS=/etc/zhct/secrets/mysql56-health.cnf
        ;;
    80)
        MYSQL=/opt/mysql/8.0.46/bin/mysql
        DEFAULTS=/etc/zhct/secrets/mysql80-health.cnf
        ;;
    *) exit 2 ;;
esac

status=503
reason='Service Unavailable'
body=standby
if [[ -r "$DEFAULTS" ]]; then
    read_only=$($MYSQL --defaults-extra-file="$DEFAULTS" --batch --skip-column-names -e 'SELECT @@global.read_only' 2>/dev/null || true)
    super_read_only=$($MYSQL --defaults-extra-file="$DEFAULTS" --batch --skip-column-names -e "SELECT IFNULL(@@global.super_read_only,0)" 2>/dev/null || printf '0')
    if [[ "$read_only" == 0 && "$super_read_only" == 0 ]]; then
        status=200
        reason=OK
        body=primary
    fi
fi

printf 'HTTP/1.0 %s %s\r\nContent-Type: text/plain\r\nContent-Length: %s\r\nConnection: close\r\n\r\n%s' "$status" "$reason" "${#body}" "$body"
