26 lines
637 B
Bash
26 lines
637 B
Bash
|
#! /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"
|