#!/bin/bash # Legge i messaggi nuovi da una coda mailbox e avanza l'offset dedicato. # Uso: slave_mailbox_read.sh # Stampa il contenuto nuovo (se c'è) su stdout, exit 0 sempre — nessun output significa # nessun messaggio nuovo. Pensato per essere chiamato da un loop di polling (es. # gemello-ufficio via ScheduleWakeup, vedi project_bridge_mailbox_gemello_ufficio.md). # Stesso pattern già usato in .claude/hooks/session-start-reminder.sh per mailbox.log, # generalizzato qui a qualunque coppia file/offset dentro slave-mailbox/. set -euo pipefail MAILBOX_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/slave-mailbox" FILE="${1:?uso: slave_mailbox_read.sh }" OFFSET_FILE="${2:?uso: slave_mailbox_read.sh }" FULL_PATH="$MAILBOX_DIR/$FILE" FULL_OFFSET_PATH="$MAILBOX_DIR/$OFFSET_FILE" [ -f "$FULL_PATH" ] || exit 0 SIZE=$(wc -c < "$FULL_PATH" | tr -d '[:space:]') OFFSET=0 if [ -f "$FULL_OFFSET_PATH" ]; then OFFSET=$(cat "$FULL_OFFSET_PATH" 2>/dev/null | tr -d '[:space:]') [ -z "$OFFSET" ] && OFFSET=0 fi if [ "$SIZE" -gt "$OFFSET" ]; then tail -c +"$((OFFSET + 1))" "$FULL_PATH" echo "$SIZE" > "$FULL_OFFSET_PATH" fi