aboutsummaryrefslogtreecommitdiffstats
path: root/commands/tell-on_join
diff options
context:
space:
mode:
Diffstat (limited to 'commands/tell-on_join')
-rwxr-xr-xcommands/tell-on_join19
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"