#!/bin/sh
# ═══ RedRTOS — pose des lanceurs RedFish ═══
set -u

MARQUEUR=/var/lib/redrtos-webapps/lanceurs-poses-r22
[ ! -e "$MARQUEUR" ] || exit 0
MODELE=/usr/share/redrtos-webapps/bitwarden.desktop
MODELE_JITSI=/usr/share/redrtos-webapps/jitsi.desktop
CIBLE_JITSI=redfish-pwa-8e2b5cb78e993fcc.desktop
TEMPORAIRE=/tmp/redrtos-webapps.$$
ECHEC=$TEMPORAIRE/echec
UTILISATEUR_OK=$TEMPORAIRE/utilisateur-ok
mkdir -p "$TEMPORAIRE" || exit 1
trap 'rm -rf "$TEMPORAIRE"' EXIT INT TERM
[ -f "$MODELE" ] && [ -f "$MODELE_JITSI" ] || exit 1

getent passwd | awk -F: '$3>=1000 && $3<65534 && $6 ~ /^\/home\// {print $1":"$6}' \
| while IFS=: read -r utilisateur home
do
	case "$utilisateur$home" in
	*[!A-Za-z0-9_/.-]*) touch "$ECHEC"; continue ;;
	esac
	lanceurs="$home/.local/share/applications"
	if su "$utilisateur" -s /bin/sh -c "mkdir -p '$lanceurs' && rm -f '$lanceurs/youtube.desktop' '$lanceurs/org.chromium.Chromium.desktop' '$lanceurs/jitsi.desktop' && cp '$MODELE' '$lanceurs/bitwarden.desktop' && cp '$MODELE_JITSI' '$lanceurs/$CIBLE_JITSI' && chmod 644 '$lanceurs/bitwarden.desktop' '$lanceurs/$CIBLE_JITSI'"
	then
		[ -f "$lanceurs/bitwarden.desktop" ] && [ -f "$lanceurs/$CIBLE_JITSI" ] && touch "$UTILISATEUR_OK" || touch "$ECHEC"
		su "$utilisateur" -s /bin/sh -c "update-desktop-database '$lanceurs'" >/dev/null 2>&1 || true
	else
		touch "$ECHEC"
	fi
done

[ -e "$UTILISATEUR_OK" ] || exit 1
[ ! -e "$ECHEC" ] || exit 1
mkdir -p "${MARQUEUR%/*}"
touch "$MARQUEUR"
systemctl --no-block stop redrtos-webapps-lanceurs.timer >/dev/null 2>&1 || true
