Services (daynivo-kiosk-*, daynivo-network-guard, daynivo-boot-import), programs in /usr/lib/daynivo-kiosk, folders /etc, /var/lib, /var/log and /var/cache daynivo-kiosk*, the system user daynivo, DAYNIVO_* settings, the plymouth theme, network profiles daynivo-eth0/wlan0, the image stage and its first user daynivoadmin. install.sh moves a kiosk installed up to 1.2.x over once: old services stopped and removed, folders moved (configuration, password, browser profile, logs) with symlinks under the old names, the voxip user renamed with the same uid, network profiles renamed unless a change awaits confirmation, and old leftovers removed. Tested by upgrading a configured 1.2.0 installation in a container, and running the install a second time. Old names keep working where people type or place them: voxip-config.json, voxip-authorized_keys, voxip-network-reset, voxip-kiosk-ctl, and VOXIP_DEFAULT_URL / VOXIP_DEVICE_NAME for image builds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
81 lines
4.0 KiB
Bash
Executable File
81 lines
4.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Remove Daynivo Kiosk OS.
|
|
#
|
|
# sudo ./uninstall.sh # remove programs and services, keep configuration
|
|
# sudo ./uninstall.sh --purge # also remove configuration, state, logs and users
|
|
#
|
|
# Installed Debian packages (Chromium, Xorg, Flask, …) are left in place; remove
|
|
# them with apt if they are no longer needed.
|
|
|
|
set -euo pipefail
|
|
|
|
PURGE=0
|
|
[[ ${1:-} == "--purge" ]] && PURGE=1
|
|
[[ ${1:-} == "-h" || ${1:-} == "--help" ]] && { sed -n '3,10p' "$0" | sed 's/^# \{0,1\}//'; exit 0; }
|
|
[[ $EUID -eq 0 ]] || { echo "Voer dit script uit met sudo." >&2; exit 1; }
|
|
|
|
UNITS=(daynivo-kiosk-healthcheck.timer daynivo-kiosk-healthcheck.service daynivo-kiosk-agent.service
|
|
daynivo-kiosk-browser.service daynivo-kiosk-x.service daynivo-kiosk-manager.service
|
|
daynivo-network-guard.service daynivo-boot-import.service daynivo-kiosk-update.timer daynivo-kiosk-update.service)
|
|
|
|
PREVIOUS_TARGET="$(cat /var/lib/daynivo-kiosk/previous-default-target 2>/dev/null || true)"
|
|
PREVIOUS_SPLASH="$(cat /var/lib/daynivo-kiosk/previous-plymouth-theme 2>/dev/null || true)"
|
|
mapfile -t DISABLED_DMS < <(cat /var/lib/daynivo-kiosk/disabled-display-managers 2>/dev/null)
|
|
|
|
echo "==> Services stoppen en verwijderen"
|
|
systemctl stop daynivo-network-rollback.timer 2>/dev/null || true
|
|
for unit in "${UNITS[@]}"; do
|
|
systemctl disable --now "$unit" 2>/dev/null || true
|
|
rm -f "/etc/systemd/system/$unit"
|
|
done
|
|
systemctl daemon-reload
|
|
|
|
echo "==> Bestanden verwijderen"
|
|
rm -rf /usr/lib/daynivo-kiosk /usr/share/daynivo-kiosk /usr/share/doc/daynivo-kiosk
|
|
rm -f /usr/local/sbin/daynivo-kiosk-ctl /usr/local/sbin/voxip-kiosk-ctl
|
|
# Symlinks left by the move from the VoxIP names
|
|
for link in /etc/voxip-kiosk /var/lib/voxip-kiosk /var/lib/voxip-kiosk-network /var/lib/voxip-kiosk-browser \
|
|
/var/log/voxip-kiosk /var/cache/voxip-kiosk; do
|
|
if [[ -L $link ]]; then rm -f "$link"; fi
|
|
done
|
|
rm -f /etc/sudoers.d/daynivo-kiosk
|
|
rm -f /etc/systemd/journald.conf.d/daynivo-kiosk.conf /etc/systemd/system.conf.d/daynivo-watchdog.conf
|
|
rm -f /etc/logrotate.d/daynivo-kiosk /etc/avahi/services/daynivo-kiosk.service
|
|
rm -f /etc/chromium/policies/managed/daynivo-kiosk.json /etc/chromium-browser/policies/managed/daynivo-kiosk.json
|
|
rm -f /etc/systemd/zram-generator.conf
|
|
rm -f /etc/ssh/sshd_config.d/daynivo-kiosk.conf
|
|
if [[ -f /etc/X11/Xwrapper.config.daynivo-orig ]]; then
|
|
mv /etc/X11/Xwrapper.config.daynivo-orig /etc/X11/Xwrapper.config
|
|
else
|
|
rm -f /etc/X11/Xwrapper.config
|
|
fi
|
|
if [[ -d /usr/share/plymouth/themes/daynivo-kiosk ]]; then
|
|
echo "==> Opstartscherm terugzetten (${PREVIOUS_SPLASH:-text})"
|
|
rm -rf /usr/share/plymouth/themes/daynivo-kiosk
|
|
plymouth-set-default-theme -R "${PREVIOUS_SPLASH:-text}" >/dev/null 2>&1 || true
|
|
fi
|
|
if [[ -f /etc/systemd/system/display-kiosk.service.daynivo-disabled ]]; then
|
|
echo " (de eerdere Daynivo-kioskservice staat nog als display-kiosk.service.daynivo-disabled)"
|
|
fi
|
|
|
|
if [[ $PURGE -eq 1 ]]; then
|
|
echo "==> Configuratie, status, logs en gebruikers verwijderen"
|
|
rm -rf /etc/daynivo-kiosk /var/lib/daynivo-kiosk /var/lib/daynivo-kiosk-network /var/lib/daynivo-kiosk-browser /var/log/daynivo-kiosk
|
|
# Downloaded releases (install-online.sh and the updater); safe even when running from there.
|
|
rm -rf /opt/daynivo-kiosk-os /var/cache/daynivo-kiosk
|
|
rm -f /etc/NetworkManager/system-connections/daynivo-eth0.nmconnection /etc/NetworkManager/system-connections/daynivo-wlan0.nmconnection
|
|
nmcli connection reload 2>/dev/null || true
|
|
userdel -r kiosk 2>/dev/null || true
|
|
userdel daynivo 2>/dev/null || true
|
|
groupdel kiosk 2>/dev/null || true
|
|
groupdel daynivo 2>/dev/null || true
|
|
else
|
|
echo " Configuratie bewaard in /etc/daynivo-kiosk (verwijderen met --purge)."
|
|
echo " Daynivo-netwerkprofielen (daynivo-eth0/daynivo-wlan0) blijven actief."
|
|
fi
|
|
|
|
if [[ -n $PREVIOUS_TARGET ]]; then systemctl set-default "$PREVIOUS_TARGET" >/dev/null 2>&1 || true; fi
|
|
for dm in "${DISABLED_DMS[@]}"; do systemctl enable "$dm" >/dev/null 2>&1 || true; done
|
|
echo "==> Daynivo Kiosk OS is verwijderd. Herstart de Raspberry Pi om de kiosk te stoppen."
|