#!/bin/bash
set -e

PKG="Fail2BanCommunity"
PKG_DIR="/var/packages/${PKG}"
LOG_DIR="${PKG_DIR}/var/log"
LOG_FILE="${LOG_DIR}/pkg-debug.log"
RESOURCE_FILE="${PKG_DIR}/conf/resource"

timestamp() {
    date '+%Y-%m-%d %H:%M:%S %z'
}

write_log() {
    local msg="$*"
    mkdir -p "$LOG_DIR" 2>/dev/null || true
    printf '%s [%s] pid=%s %s\n' "$(timestamp)" "$PKG" "$$" "$msg" >>"$LOG_FILE" 2>/dev/null || true
    if command -v logger >/dev/null 2>&1; then
        logger -t "${PKG}[postupgrade]" -- "$msg" 2>/dev/null || true
    fi
}

read_force_recreate() {
    if [ ! -f "$RESOURCE_FILE" ]; then
        printf 'missing'
        return 0
    fi

    sed -n 's/.*"force_recreate":\(true\|false\).*/\1/p' "$RESOURCE_FILE" 2>/dev/null | head -n 1
}

release_policy() {
    case "${SYNOPKG_PKGVER:-unknown}" in
        *)
            printf 'default_no_recreate'
            ;;
    esac
}

write_log "action=postupgrade phase=entry pkg_status=${SYNOPKG_PKG_STATUS:-<empty>} pkg_ver=${SYNOPKG_PKGVER:-<empty>} policy=$(release_policy) force_recreate=$(read_force_recreate)"
write_log "action=postupgrade phase=exit rc=0 pkg_status=${SYNOPKG_PKG_STATUS:-<empty>} pkg_ver=${SYNOPKG_PKGVER:-<empty>} policy=$(release_policy) force_recreate=$(read_force_recreate)"

exit 0
