wgctl/core/fmt.sh

55 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# ============================================
# Date Formats
# ============================================
FMT_DATE_ISO="%Y-%m-%d" # 2026-05-10
FMT_DATE_EU="%d/%m/%Y" # 10/05/2026
FMT_DATE_EU_DASH="%d-%m-%Y" # 10-05-2026
FMT_DATETIME_ISO="%Y-%m-%d %H:%M" # 2026-05-10 22:39
FMT_DATETIME_EU="%d/%m/%Y %H:%M" # 10/05/2026 22:39
# Default — can be overridden in wgctl.conf
FMT_DATE="${FMT_DATE_ISO}"
FMT_DATETIME="${FMT_DATETIME_ISO}"
# Load from config or use default
_FMT_DATE_FORMAT="${DATE_FORMAT:-iso}"
FMT_HELPER="${_CTX_ROOT}/core/fmt_helper.py"
function fmt::date() {
local ts="$1"
date -d "@${ts}" "+${FMT_DATE}" 2>/dev/null || echo "$ts"
}
function fmt::datetime() {
local ts="$1"
date -d "@${ts}" "+${FMT_DATETIME}" 2>/dev/null || echo "$ts"
}
function fmt::datetime_iso() {
local iso="$1"
python3 "$FMT_HELPER" fmt_datetime "$iso" "$FMT_DATETIME" </dev/null
}
function fmt::set_date_format() {
local format="$1"
case "$format" in
iso)
FMT_DATE="%Y-%m-%d"
FMT_DATETIME="%Y-%m-%d %H:%M"
;;
eu)
FMT_DATE="%d/%m/%Y"
FMT_DATETIME="%d/%m/%Y %H:%M"
;;
eu-dash)
FMT_DATE="%d-%m-%Y"
FMT_DATETIME="%d-%m-%Y %H:%M"
;;
*) log::error "Unknown date format: $format" ;;
esac
}