This repository has been archived on 2026-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
anvillm/tools/mail_search.sh

43 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Search message history for an agent or user by regex pattern.
# Usage: mail_search.sh --agent-id <agent-id|user> --pattern <regex> [--date YYYYMMdd]
set -euo pipefail
AGENT_ID=""
PATTERN=""
DATE=""
while [[ $# -gt 0 ]]; do
case "$1" in
--agent-id) AGENT_ID="$2"; shift 2 ;;
--pattern) PATTERN="$2"; shift 2 ;;
--date) DATE="$2"; shift 2 ;;
*) echo "unknown argument: $1" >&2; exit 1 ;;
esac
done
if [[ -z "$AGENT_ID" ]] || [[ -z "$PATTERN" ]]; then
echo "usage: mail_search.sh --agent-id <agent-id|user> --pattern <regex> [--date YYYYMMdd]" >&2
exit 1
fi
MAIL_DIR="$HOME/.local/share/anvillm/mail/$AGENT_ID"
shopt -s nullglob
if [[ -n "$DATE" ]]; then
SENT="$MAIL_DIR/${DATE}-sent.jsonl"
RECV="$MAIL_DIR/${DATE}-recv.jsonl"
FILES=()
[[ -f "$SENT" ]] && FILES+=("$SENT")
[[ -f "$RECV" ]] && FILES+=("$RECV")
else
FILES=("$MAIL_DIR"/*-sent.jsonl "$MAIL_DIR"/*-recv.jsonl)
fi
shopt -u nullglob
if [[ ${#FILES[@]} -eq 0 ]]; then
exit 0
fi
cat "${FILES[@]}" | grep -E "$PATTERN"