Introduction
Introduction Statistics Contact Development Disclaimer Help
move per-channel daemon to its own script - annna - Annna the nice friendly bot.
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6…
Log
Files
Refs
Tags
README
---
commit 0b40cdabd01e90ea614605fc00819fefa30b1a76
parent aea4bdf3acd506f2486022fac38f2cd7ea3d1c86
Author: Josuah Demangeon <[email protected]>
Date: Mon, 8 Mar 2021 00:56:10 +0100
move per-channel daemon to its own script
This permits to add a check for only running channel serivces once per channel,
using pgrep of the script name along with its arguments.
The script kills its matching entr at exit or interruption to make sure that no
stale entr live in the background while the channel service stopped.
Signed-off-by: Annna Robert-Houdin <[email protected]>
Diffstat:
A annna-channel-service | 29 +++++++++++++++++++++++++++++
M annna-start-services | 22 ++--------------------
2 files changed, 31 insertions(+), 20 deletions(-)
---
diff --git a/annna-channel-service b/annna-channel-service
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# Per-channel daemon that monitors incoming messages from ii out script.
+#
+
+pgrep -f "$0 $*" | grep -vxq "$$" && exec echo "$0 $* already running"
+trap 'exec pkill -U annna -f "entr .* ${PWD}/out"' INT TERM EXIT HUP
+
+server="$1"
+channel="$2"
+
+iiroot="/home/annna/irc"
+iibase="/home/annna/irc/${server}"
+
+ls "${iibase}/${channel}/out" | entr tail -n 1 "${iibase}/${channel}/out" \
+ | sed -nu 's,[0-9]* <\([^ >]*\)> \(.*\),\1 \2,p' \
+ | {
+while read -r user text;
+do
+ case "${channel}" in
+ \#bitreich-radio)
+ annna-message-radio "${channel}" "${user}" "${text}"
+ ;;
+ *)
+ annna-message-common "${channel}" "${user}" "${text}"
+ ;;
+ esac
+done
+}
diff --git a/annna-start-services b/annna-start-services
@@ -28,27 +28,9 @@ do
[ -p "${iibase}/${channel}/in" ] \
&& chmod o+w "${iibase}/${channel}/in"
- if [ ! -f "${iibase}/${channel}/out" ];
+ if [ -f "${iibase}/${channel}/out" ];
then
- continue
+ annna-channel-service "${server}" "${channel}" &
fi
-
- {
- ls "${iibase}/${channel}/out" | entr tail -n 1 "${iibase}/${ch…
- | sed -nu 's,[0-9]* <\([^ >]*\)> \(.*\),\1 \2,p' \
- | {
- while read -r user text;
- do
- case "${channel}" in
- \#bitreich-radio)
- annna-message-radio "${channel}" "${user}" "${…
- ;;
- *)
- annna-message-common "${channel}" "${user}" "$…
- ;;
- esac
- done
- }
- } &
done
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.