#!/usr/bin/env bash
set -euo pipefail

C_RED='\033[0;31m'
C_GREEN='\033[0;32m'
C_CYAN='\033[0;36m'
C_ORANGE='\033[38;5;208m'
C_BOLD='\033[1m'
C_RESET='\033[0m'

info()  { echo -e "${C_CYAN}[factory]${C_RESET} $*"; }
ok()    { echo -e "${C_GREEN}[factory]${C_RESET} $*"; }
err()   { echo -e "${C_RED}[factory]${C_RESET} $*" >&2; }
die()   { err "$@"; exit 1; }

[[ $EUID -eq 0 ]] || die "Must be run as root."

echo -e "${C_BOLD}${C_ORANGE}"
echo "╔══════════════════════════════════════════════════╗"
echo "║        FactoryOS Post-Install Setup             ║"
echo "╚══════════════════════════════════════════════════╝"
echo -e "${C_RESET}"

# ── Timezone ─────────────────────────────────────────────────────

info "Setting timezone to Europe/Budapest (GMT+2)..."
ln -sf /usr/share/zoneinfo/Europe/Budapest /etc/localtime
hwclock --systohc
ok "Timezone set to Europe/Budapest"

# ── Keyboard layout ──────────────────────────────────────────────

info "Setting keyboard layout to Hungarian (hu)..."

# Console keyboard
if command -v localectl &>/dev/null; then
    localectl set-keymap hu
fi

# GNOME keyboard
mkdir -p /etc/dconf/db/local.d
cat > /etc/dconf/db/local.d/02-keyboard <<'EOF'
[org/gnome/desktop/input-sources]
sources=[('xkb', 'hu')]
EOF

dconf update 2>/dev/null || true
ok "Keyboard layout set to Hungarian"

# ── Locale ───────────────────────────────────────────────────────

info "Setting system language to en_US.UTF-8..."
if ! grep -q "en_US.UTF-8 UTF-8" /etc/locale.gen 2>/dev/null; then
    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
fi
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
ok "Language set to en_US.UTF-8"

# ── Done ─────────────────────────────────────────────────────────

echo ""
ok "Post-install setup complete!"
echo ""
info "Summary:"
echo "  Timezone:  Europe/Budapest (GMT+2)"
echo "  Keyboard:  Hungarian (hu)"
echo "  Language:  en_US.UTF-8"
echo ""
info "Reboot recommended."
