26 lines
638 B
Bash
Executable File
26 lines
638 B
Bash
Executable File
#! /bin/sh
|
|
set -euf
|
|
|
|
# require flock from util-linux (pkgs.util-linux)
|
|
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"
|