Introduction
Introduction Statistics Contact Development Disclaimer Help
Fix major bugs in annna. - annna - Annna the nice friendly bot.
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6…
Log
Files
Refs
Tags
README
---
commit 8ef63faa063c71c42142e1bf2892e8ccafacbb6c
parent bc22021f5895ec90dda9183e932989364fbe0f63
Author: Annna Robert-Houdin <[email protected]>
Date: Mon, 2 Apr 2018 08:31:12 +0200
Fix major bugs in annna.
* On startup annna will listen to commands.
* If only some channels are set to be joined don't barf.
* Checking for channels is streamlined.
* Check for ii and socat so the connection really works.
Diffstat:
M annna-start-checker | 6 ++++--
M annna-start-checker-dbg | 6 ++++--
M annna-start-main | 6 ++++++
M annna-start-services | 33 +++++++++++++++++++++++------…
4 files changed, 39 insertions(+), 12 deletions(-)
---
diff --git a/annna-start-checker b/annna-start-checker
@@ -9,10 +9,12 @@ export PATH="$PATH:/home/annna/bin"
while /bin/true;
do
# Is annna still in her world?
- pid="$(pgrep -U annna -x socat)"
+ socatpid="$(pgrep -U annna -x socat)"
+ iipid="$(pgrep -U annna -x ii)"
- if [ -z "$pid" ];
+ if [ -z "$socatpid" -o -z "$iipid" ];
then
+ annna-stop-socat >/dev/null 2>&1
annna-stop-services >/dev/null 2>&1
annna-start-main >/dev/null 2>&1
fi
diff --git a/annna-start-checker-dbg b/annna-start-checker-dbg
@@ -8,11 +8,13 @@ export PATH="$PATH:/home/annna/bin"
while /bin/true;
do
# Is annna still in her world?
- pid="$(pgrep -U annna -x socat)"
+ socatpid="$(pgrep -U annna -x socat)"
+ iipid="$(pgrep -U annna -x ii)"
- if [ -z "$pid" ];
+ if [ -z "$socatpid" -o -z "$iipid" ];
then
printf "checker: Starting annna.\n"
+ sh -x annna-stop-socat
sh -x annna-stop-services
sh -x annna-start-main
fi
diff --git a/annna-start-main b/annna-start-main
@@ -10,6 +10,8 @@ export PATH="$PATH:/home/annna/bin"
channels="#bitreich-con #bitreich-radio
#bitreich-scm #bitreich-en #bitreich-de
#bitreich-fr #bitreich-cooking"
+# Testing
+#channels="#bitreich-radio"
rm -rf $HOME/irc
mkdir -p $HOME/irc
@@ -21,6 +23,7 @@ socat openssl:chat.freenode.net:6697,keepalive,keepcnt=5,keep…
unix-l:$HOME/freenode.sock &
while [ ! -e $HOME/freenode.sock ];
do
+ [ -z "$(pgrep socat)" ] && exit 1
sleep 0.5
done
@@ -72,6 +75,9 @@ for chan in ${channels};
do
printf "/j %s\n" "${chan}" > chat.freenode.net/in
+ # Do not flood.
+ sleep 1
+
## Make sure the pipes are there.
while [ ! -e "$HOME/irc/chat.freenode.net/${chan}/out" ];
do
diff --git a/annna-start-services b/annna-start-services
@@ -4,30 +4,42 @@
# If this gets too unmaintainable, consider adding some directory structure.
#
+set -x
+
export PATH="$PATH:/home/annna/bin"
# Bitreich members who are allowed to run certain commands.
brmembers="__20h__ Evil_Bob chripo posativ quinq stateless solene josuah paraz…
botname="annna"
+iiroot="/home/annna/irc"
iibase="/home/annna/irc/chat.freenode.net"
# Permissions
-chmod o+rx $HOME/irc
-chmod o+rx $HOME/irc/chat.freenode.net
+[ -d ${iiroot} ] && chmod o+rx ${iiroot}
+[ -d ${iibase} ] && chmod o+rx ${iibase}
## EN Channel (this script)
-chmod o+rx "$HOME/irc/chat.freenode.net/#bitreich-en"
-chmod o+w "$HOME/irc/chat.freenode.net/#bitreich-en/in"
+[ -d "${iibase}/#bitreich-en" ] \
+ && chmod o+rx "${iibase}/#bitreich-en"
+[ -f "${iibase}/#bitreich-en/in" ] \
+ && chmod o+w "${iibase}/#bitreich-en/in"
## SCM (/scm/post-receive)
-chmod o+rx "$HOME/irc/chat.freenode.net/#bitreich-scm"
-chmod o+w "$HOME/irc/chat.freenode.net/#bitreich-scm/in"
+[ -d "${iibase}/#bitreich-scm" ] \
+ && chmod o+rx "${iibase}/#bitreich-scm"
+[ -f "${iibase}/#bitreich-scm/in" ] \
+ && chmod o+w "${iibase}/#bitreich-scm/in"
## Radio (/br/radio/playlist.sh + this script)
-chmod o+rx "$HOME/irc/chat.freenode.net/#bitreich-radio"
-chmod o+w "$HOME/irc/chat.freenode.net/#bitreich-radio/in"
+[ -d "${iibase}/#bitreich-radio" ] \
+ && chmod o+rx "${iibase}/#bitreich-radio"
+[ -f "${iibase}/#bitreich-radio/in" ] \
+ && chmod o+w "${iibase}/#bitreich-radio/in"
+if [ -f "${iibase}/#bitreich-radio/out" ];
+then
# bitreich-radio
{
ls "${iibase}/#bitreich-radio/out" | entr tail -n 1 "${iibase}/#bitrei…
+ | grep -v --line-buffered -e '[0-9]* -!- .*' \
| sed -u 's,[0-9]* <\([^ >]*\)> \(.*\)$,\1\n\2,' \
| {
while read user;
@@ -52,10 +64,14 @@ chmod o+w "$HOME/irc/chat.freenode.net/#bitreich-radio/in"
done
}
} &
+fi
# bitreich-en
+if [ -f "${iibase}/#bitreich-en/out" ];
+then
{
ls "${iibase}/#bitreich-en/out" | entr tail -n 1 "${iibase}/#bitreich-…
+ | grep -v --line-buffered -e '[0-9]* -!- .*' \
| sed -u 's,[0-9]* <\([^ >]*\)> \(.*\)$,\1\n\2,' \
| {
while read user;
@@ -187,4 +203,5 @@ chmod o+w "$HOME/irc/chat.freenode.net/#bitreich-radio/in"
done
}
} &
+fi
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.