Fixing reefresh script

This commit is contained in:
henrov committed 2026-09-08 18:43:40 +02:00
1 parent ca5854e87a
commit 11db22f1ba
1 file changed
+78 -15
+78 -15
View File
@@ -444,35 +444,98 @@ EndSection
EOF
# -----------------------------------------------------------------------------
# 10. Script maken waarmee av-admin het Chromium-beleid kan verversen na het
# aanpassen van /etc/kiosk/urls.txt, zonder het hele installatiescript
# opnieuw te hoeven draaien.
# 10. Script waarmee av-admin het Chromium-beleid kan verversen na het
# aanpassen van /etc/kiosk/urls.txt.
#
# Het echte script staat centraal in /etc/kiosk/.
# av-admin krijgt een symlink in ~/kiosk/.
# -----------------------------------------------------------------------------
echo
echo "--> /etc/kiosk/refresh_policies.sh wegschrijven..."
echo "--> refresh_policies.sh installeren..."
cat > "/etc/kiosk/refresh_policies.sh" <<'REFRESH_EOF'
AV_ADMIN_HOME="/home/av-admin"
ADMIN_KIOSK_DIR="${AV_ADMIN_HOME}/kiosk"
REFRESH_SCRIPT="/etc/kiosk/refresh_policies.sh"
REFRESH_LINK="${ADMIN_KIOSK_DIR}/refresh_policies.sh"
# Zorg dat de directories bestaan
mkdir -p /etc/kiosk
mkdir -p "$ADMIN_KIOSK_DIR"
# Schrijf het refresh-script
cat > "$REFRESH_SCRIPT" <<'REFRESH_EOF'
#!/bin/bash
# Herstart Chromium op de kiosk zodat gewijzigde /etc/kiosk/urls.txt en
# beleidsinstellingen opnieuw ingelezen worden. Voer uit met: sudo ./refresh_policies.sh
# Ververs de kiosk-browser nadat /etc/kiosk/urls.txt is gewijzigd.
#
# Gebruik als av-admin:
#
# sudo /home/av-admin/kiosk/refresh_policies.sh
#
# Chromium wordt beëindigd. De Openbox-bewakingslus in de kiosk-sessie
# start Chromium daarna automatisch opnieuw.
set -euo pipefail
if [ "$(id -u)" -ne 0 ]; then
echo "Voer dit script uit met sudo: sudo ./refresh_policies.sh" >&2
echo "Voer dit script uit met sudo:" >&2
echo " sudo /home/av-admin/kiosk/refresh_policies.sh" >&2
exit 1
fi
echo "--> Chromium op de kiosk wordt herstart om wijzigingen door te voeren..."
pkill -u kiosk chromium 2>/dev/null || pkill -u kiosk chromium-browser 2>/dev/null || true
echo " Klaar. De bewakingslus in de kiosk-sessie start de browser automatisch opnieuw."
echo "--> Chromium op de kiosk wordt herstart..."
if pgrep -u kiosk chromium >/dev/null 2>&1; then
pkill -u kiosk chromium || true
echo " Chromium beëindigd."
elif pgrep -u kiosk chromium-browser >/dev/null 2>&1; then
pkill -u kiosk chromium-browser || true
echo " Chromium-browser beëindigd."
else
echo " Chromium draaide momenteel niet."
fi
echo " De Openbox-bewakingslus start Chromium automatisch opnieuw."
echo " Klaar."
REFRESH_EOF
chmod +x "/etc/kiosk/refresh_policies.sh"
chown av-admin:av-admin "/etc/kiosk/refresh_policies.sh"
# Script uitvoerbaar maken
chmod 755 "$REFRESH_SCRIPT"
ln -sf /etc/kiosk/refresh_policies.sh "${ADMIN_KIOSK_DIR}/refresh_policies.sh"
chown -h av-admin:av-admin "${ADMIN_KIOSK_DIR}/refresh_policies.sh"
# Eigendom centraal script
chown root:root "$REFRESH_SCRIPT"
# Verwijder eventueel oude versie/link
rm -f "$REFRESH_LINK"
# Maak de symlink voor av-admin
ln -s "$REFRESH_SCRIPT" "$REFRESH_LINK"
# Zorg dat av-admin eigenaar is van zijn eigen kiosk-directory
chown -R av-admin:av-admin "$ADMIN_KIOSK_DIR"
# Controleer resultaat
echo
echo " Refresh-script:"
ls -l "$REFRESH_SCRIPT"
echo
echo " Link voor av-admin:"
ls -l "$REFRESH_LINK"
# Controleer dat de link daadwerkelijk naar het script wijst
if [ ! -e "$REFRESH_LINK" ]; then
echo "FOUT: refresh_policies.sh kon niet worden aangemaakt." >&2
exit 1
fi
if [ ! -x "$REFRESH_LINK" ]; then
echo "FOUT: refresh_policies.sh is niet uitvoerbaar." >&2
exit 1
fi
echo " refresh_policies.sh succesvol geïnstalleerd."
# -----------------------------------------------------------------------------
# Klaar