#!/usr/bin/env bash
# site/info -- everything known about one site, from the registry plus reality
set -o pipefail
SELF=$(readlink -f "${BASH_SOURCE[0]}")
NV_BASE=$(cd "$(dirname "$SELF")/../../.." && pwd)
export NV_BASE
# shellcheck source=/dev/null
. "$NV_BASE/lib/core/bootstrap.sh"

ui_header "$(t site_m_info)"

if [ "$(nv_site_count)" -eq 0 ]; then
    ui_info "$(t site_none)"
    exit 0
fi

if [ $# -ge 1 ]; then domain=$1; else
    ui_info "$(nv_site_list | paste -sd' ' -)"
    printf '  %s: ' "$(t site_prompt_domain)"
    read -r domain || exit 130
fi
domain=$(nv_lower "$(nv_trim "$domain")")
nv_site_exists "$domain" || { ui_err "$(t site_not_registered)"; exit 2; }

root=$(nv_site_get "$domain" root_path)
vhost=$(site_vhost_path "$domain")

ui_section "$domain"
ui_kv "$(t col_domain)"      "$domain"
ui_kv "$(t col_php)"         "$(nv_site_get "$domain" php_version -)"
ui_kv "$(t site_root)"       "$root"
ui_kv "$(t sys_disk_usage)"  "$(site_disk_usage "$domain")"
ui_kv "$(t site_web_user)"   "$(nv_site_get "$domain" web_user -)"
ui_kv "$(t site_created_at)" "$(nv_site_get "$domain" created_at -)"

ui_section "$(t col_database)"
ui_kv "$(t db_name)" "$(nv_site_get "$domain" db_name -)"
ui_kv "$(t db_user)" "$(nv_site_get "$domain" db_user -)"
ui_kv "$(t db_host)" "localhost"

ui_section "$(t col_ssl)"
ui_kv "$(t col_ssl)" "$(nv_site_get "$domain" ssl none)"
cert="/etc/letsencrypt/live/$domain/fullchain.pem"
if [ -r "$cert" ]; then
    end=$(openssl x509 -enddate -noout -in "$cert" 2>/dev/null | cut -d= -f2)
    ui_kv "$(t ssl_expires)" "$end"
fi

ui_section "$(t site_health)"
ui_kv "$(t col_status)" "$(nv_site_health "$domain")"
ui_kv "$(t site_vhost)"  "$vhost"
ui_blank
exit 0
