From 2831ecf43cdbc5489621924e232915f57ab79150 Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Wed, 18 Feb 2026 02:05:27 -0800 Subject: [PATCH] feat(doorbell-touch): add lockfile to prevent concurrent monitor sessions --- mise.toml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mise.toml b/mise.toml index 95c0ea9..241d4a8 100644 --- a/mise.toml +++ b/mise.toml @@ -49,6 +49,18 @@ arduino-cli upload --fqbn "$FQBN" --port "$PORT" ./boards/$BOARD description = "Monitor (uses BOARD env var)" run = """ source ./boards/$BOARD/board-config.sh + +LOCKFILE="/tmp/doorbell-$BOARD.lock" +if [ -f "$LOCKFILE" ]; then + echo "Error: Another instance is running (lockfile exists: $LOCKFILE)" + echo "Remove with: rm $LOCKFILE" + exit 1 +fi +trap 'rm -f "$LOCKFILE"' EXIT +touch "$LOCKFILE" + +echo "Acquired lock: $LOCKFILE (Ctrl+C to release)" + PORT="${PORT:-$PORT}" TARGET="$(readlink -f "$PORT" 2>/dev/null || echo "$PORT")" arduino-cli monitor -p "$TARGET" --config baudrate=115200