diff options
Diffstat (limited to 'commands/tell-on_join')
-rwxr-xr-x | commands/tell-on_join | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/commands/tell-on_join b/commands/tell-on_join new file mode 100755 index 0000000..2dbff41 --- /dev/null +++ b/commands/tell-on_join @@ -0,0 +1,19 @@ +#! /bin/sh +set -euf + +# require flock from util-linux +if test "${FLOCK-}" != "$state_file"; then + exec env FLOCK="$state_file" flock "$state_file" "$0" "$@" +fi + +to="$_from" + +# print messages +sed -n '/^'"$to"' /{ + s/^\([^ ]\+\) \([^ ]\+\) <\([^>]\+\)> \(.*\)/\1: \4 2-- \2, \3/p +}' "$state_file" + +# delete messages +sed -i '/^'"$to"' /{ + d +}' "$state_file" |