#!/bin/bash # Remove-trigger cleanup for the dashcam SD card. # Called by udev rule 99-dashcam-trigger.rules via systemd-run on # ACTION=="remove" with %k as $1. Unmounts a stale /mnt/sdcard mount and # stops a transfer that can no longer complete. # Idempotent: does nothing when /mnt/sdcard is not mounted or still healthy. logger -t dashcam-transfer "Remove trigger: block device weggevallen" src=$(findmnt -no SOURCE /mnt/sdcard 2>/dev/null) if [ -z "$src" ]; then logger -t dashcam-transfer "Remove: /mnt/sdcard niet gemount, niets te doen" exit 0 fi case "$src" in /*) ;; *) logger -t dashcam-transfer "Remove: onbekende source ($src), niets te doen"; exit 0 ;; esac stale=0 if [ ! -e "$src" ]; then stale=1 elif [ -n "$1" ] && [[ "$src" == *"/$1"* ]]; then stale=1 fi if [ "$stale" -eq 0 ]; then logger -t dashcam-transfer "Remove: device $src nog aanwezig, mount blijft" exit 0 fi logger -t dashcam-transfer "Remove: device $src verdwenen — transfer stoppen, mount opruimen" systemctl stop dashcam-transfer.service 2>/dev/null || true sleep 1 if ! umount /mnt/sdcard 2>/dev/null; then logger -t dashcam-transfer "Remove: umount mislukt, lazy unmount" umount -l /mnt/sdcard 2>/dev/null || true fi logger -t dashcam-transfer "Remove: stale mount opgeruimd"