"/home/$USER/sorties.log"..."> Script Borne d'affichage dynamique pour Xubuntu 24.04
Script Borne d'affichage dynamique pour Xubuntu 24.04
Basé sur un partage réseau (NAS) et LibreOffice
#!/bin/sh
USER="utilisateur"
IP_NAS="192.168.1.250"
# Pour le débugguage : fichiers de log journalier (les raspi redémarrant chaque jour)
# exec 1> "/home/$USER/sorties.log" 2> "/home/$USER/erreurs.log"
# Pour éviter que l'écran ne s'éteigne au bout d'un certain temps
# xset s off
# xset -dpms
# On affiche l'image d'arrière fond pour "masquer" le bureau LXDE de Raspbian.
# feh -Z -F -Y "/home/$USER/Pictures/Splash_screen_miniature.png" &
# Initialisation des variables
VERSION_OLD="toto"
PID=""
# On attend 15 secondes que wicd configure le réseau
sleep 15
# On teste toutes 20 secondes si une nouvelle version du diapo est disponible sur le partage et on met à jour si nécessaire ...
while true; do
# On rècupère la date de dernière modification du diaporama, sur le partage Samba
VERSION_NEW=$(smbclient //$IP_NAS/Affichage_dynamique/ "" -c 'ls diapo.odp' | cut -f 1 | awk '{print $4 $5 $6 $7 $8}'
)
# Si la diapo sur le partage est plus récent que celui projeté actuellement, on re-télécharge la nouvelle version du diapo puis on la projette
if [ "$VERSION_NEW" != "$VERSION_OLD" ]
then
# On ferme le diapo projeté
kill "$PID"
# On attend 2 secondes avant de passer à la suite
sleep 2
# On nettoie le répertoire affichage_dynamique avant d'y mettre la nouvelle version du diaporama
rm -rf "/home/$USER/Affichage_dynamique"
mkdir "/home/$USER/Affichage_dynamique"
smbclient //192.168.1.250/Affichage_dynamique/ "" -c 'get \diapo.odp /home/utilisateur/Affichage_dynamique/diapo.odp'
sleep 2
# On relance le diapo uniquement si le téléchargement s'est bien passé, sinon on affiche un message d'erreur
if [ -e "/home/$USER/Affichage_dynamique/diapo.odp" ]
then
mv -f "/home/$USER/affichage_dynamique/diapo_eleves_temp.odp" "/home/$USER/affichage_dynamique/diapo.odp"
VERSION_OLD="$VERSION_NEW"
else
cp -f "/home/$USER/diapo_erreur.odp" "/home/$USER/Affichage_dynamique/diapo.odp"
fi
# On attend 1 seconde avant de passer à la suite (ce qui fait que les utilisateurs visionnent l'image d'arrière fond pendant 5 secondes au total avant la projection du nouveau diaporama ...)
sleep 1
# On relance libreoffice avec la nouvelle version du diapo
libreoffice --norestore --show "/home/$USER/Affichage_dynamique/diapo.odp" &
PID=$(echo "$!");
# On attend 15 secondes avant la prochaine synchro
sleep 15
else
# Pas de mise à jour du diapo : on attend 20 secondes avant de re-vérifier la synchro
sleep 20
fi
done
/image%2F1460668%2F20250109%2Fob_68458b_logo-mike-3.png)