diff --git a/install-kiosk-nl.sh b/install-kiosk-nl.sh index 584941e..064e7eb 100755 --- a/install-kiosk-nl.sh +++ b/install-kiosk-nl.sh @@ -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 - exit 1 + 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