Refactor service startup, make it modular. - annna - Annna the nice friendly bot.
 (HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
       ---
 (DIR) commit a9faa5e4eaee28562ff2de88d5f073fcaaaed503
 (DIR) parent 3c8d08bf47e5486d78b3c1cf443df70a9c7ee57a
 (HTM) Author: Annna Robert-Houdin <annna@bitreich.org>
       Date:   Mon, 20 Dec 2021 00:05:22 +0100
       
       Refactor service startup, make it modular.
       
       Diffstat:
         M annna-channel-service               |       2 +-
         M annna-start-main                    |       7 +++----
         A annna-start-service                 |      35 +++++++++++++++++++++++++++++++
         D annna-start-services                |      37 -------------------------------
       
       4 files changed, 39 insertions(+), 42 deletions(-)
       ---
 (DIR) diff --git a/annna-channel-service b/annna-channel-service
       @@ -14,7 +14,7 @@ channel="$2"
        iiroot="/home/annna/irc"
        iibase="/home/annna/irc/${server}"
        
       -ls "${iibase}/${channel}/out" | entr tail -n 1 "${iibase}/${channel}/out" \
       +ls "${iibase}/${channel}/out" | entr tail -n 1 "${iibase}/${channel}/out" 2>/dev/null \
                | sed -nu 's,[0-9]* <\([^ >]*\)> \(.*\),\1 \2,p' \
                | {
        while read -r user text;
 (DIR) diff --git a/annna-start-main b/annna-start-main
       @@ -45,7 +45,7 @@ iipid=$!
                # services disappear.
                while kill -0 $iipid >/dev/null 2>&1;
                do
       -                sleep 1
       +                sleep 10
                done
                rm -rf $HOME/irc/${server}
        
       @@ -91,8 +91,7 @@ do
                do
                        sleep 0.5
                done
       -done
        
       -# Services
       -annna-start-services
       +        annna-start-service "${server}" "${chan}"
       +done
        
 (DIR) diff --git a/annna-start-service b/annna-start-service
       @@ -0,0 +1,35 @@
       +#!/bin/sh
       +#
       +# Here follow scriplets to listen for commands in annna.
       +#
       +
       +if [ $# -lt 2 ];
       +then
       +        printf "usage: %s server channel\n" "$(basename "$0")"
       +        exit 1
       +fi
       +server="$1"
       +channel="$2"
       +
       +export PATH="$PATH:/home/annna/bin"
       +# plan9port
       +export PATH="$PATH:/opt/plan9/bin"
       +
       +iiroot="/home/annna/irc"
       +iibase="/home/annna/irc/${server}"
       +
       +# Permissions
       +[ -d ${iiroot} ] && chmod o+rx ${iiroot}
       +[ -d ${iibase} ] && chmod o+rx ${iibase}
       +
       +## Channel handlers
       +[ -d "${iibase}/${channel}" ] \
       +        && chmod o+rx "${iibase}/${channel}"
       +[ -p "${iibase}/${channel}/in" ] \
       +        && chmod o+w "${iibase}/${channel}/in"
       +
       +if [ -f "${iibase}/${channel}/out" ];
       +then
       +        annna-channel-service "${server}" "${channel}" &
       +fi
       +
 (DIR) diff --git a/annna-start-services b/annna-start-services
       @@ -1,37 +0,0 @@
       -#!/bin/sh
       -#
       -# Here follow scriplets to listen for commands in annna.
       -#
       -
       -export PATH="$PATH:/home/annna/bin"
       -
       -# plan9port
       -export PATH="$PATH:/opt/plan9/bin"
       -
       -server="irc.bitreich.org"
       -iiroot="/home/annna/irc"
       -iibase="/home/annna/irc/${server}"
       -channel_list="#bitreich #bitreich-en #bitreich-fr #bitreich-de #bitreich-nl #bitreich-it #bitreich-con #bitreich-scm #bitreich-cooking #bitreich-lawn #bitreich-tv #bitreich-meme #bitreich-radio #bitreich-books"
       -
       -#testing
       -#channel_list="#bitreich-scm"
       -
       -# Permissions
       -[ -d ${iiroot} ] && chmod o+rx ${iiroot}
       -[ -d ${iibase} ] && chmod o+rx ${iibase}
       -
       -## Channel handlers
       -for channel in $channel_list;
       -do
       -        # Permissions
       -        [ -d "${iibase}/${channel}" ] \
       -                && chmod o+rx "${iibase}/${channel}"
       -        [ -p "${iibase}/${channel}/in" ] \
       -                && chmod o+w "${iibase}/${channel}/in"
       -
       -        if [ -f "${iibase}/${channel}/out" ];
       -        then
       -                annna-channel-service "${server}" "${channel}" &
       -        fi
       -done
       -