#!/bin/bash
set -euo pipefail

fws_first_user() {
    awk -F: '$3 >= 1000 && $1 != "nobody" { print $1; exit }' /etc/passwd
}

fws_install_packages() {
    pacman -Sy --noconfirm --needed "$@"
}

fws_enable_services() {
    for service in "$@"; do
        systemctl enable "$service" >/dev/null 2>&1 || true
    done
}

fws_disable_services() {
    for service in "$@"; do
        systemctl disable "$service" >/dev/null 2>&1 || true
    done
}

fws_write_dmrc() {
    local user_name="$1"
    local session_name="$2"

    if [ -n "$user_name" ] && [ -d "/home/$user_name" ]; then
        printf '[Desktop]\nSession=%s\n' "$session_name" > "/home/$user_name/.dmrc"
    fi
}

fws_write_lightdm_config() {
    local user_name="$1"
    local session_name="$2"

    if [ -z "$user_name" ]; then
        return 0
    fi

    mkdir -p /etc/lightdm/lightdm.conf.d
    printf '[Seat:*]\nautologin-user=%s\nautologin-user-timeout=0\nuser-session=%s\nautologin-session=%s\ngreeter-hide-users=true\nallow-guest=false\n' \
        "$user_name" "$session_name" "$session_name" \
        > /etc/lightdm/lightdm.conf.d/50-fws.conf
}

fws_write_sddm_config() {
    local user_name="$1"
    local session_name="$2"

    if [ -z "$user_name" ]; then
        return 0
    fi

    mkdir -p /etc/sddm.conf.d
    printf '[Autologin]\nUser=%s\nSession=%s.desktop\nRelogin=false\n' \
        "$user_name" "$session_name" \
        > /etc/sddm.conf.d/50-fws.conf
}

# Paquets installés par défaut sur tous les bureaux
fws_install_base_apps() {
    fws_install_packages firefox libreoffice-fresh mariadb mariadb-clients
    # Initialise la base de données MariaDB
    mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql \
        >/dev/null 2>&1 || true
    fws_enable_services mariadb.service
}
