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