#! /bin/sh
set -euf

# require flock from util-linux (pkgs.utillinux)
if test "${FLOCK-}" != "$state_file"; then
  exec env FLOCK="$state_file" flock "$state_file" "$0" "$@"
fi

# TODO tell now, if already joined
jq -r <"$state_file" \
    --arg to "$_from" \
    --arg msgtarget "$_msgtarget" \
    '
      select(.to == $to and .msgtarget == $msgtarget) |
      "\(.to): \(.text) \u00032-- \(.from)\u00032 \(.date)"
    '

jq -c <"$state_file" >"$state_file.tmp" \
    --arg to "$_from" \
    --arg msgtarget "$_msgtarget" \
    '
      select((.to == $to and .msgtarget == $msgtarget) | not)
    '

mv "$state_file.tmp" "$state_file"