annna-join-channels - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- annna-join-channels (1100B) --- 1 #!/bin/sh 2 3 export PATH="$PATH:/home/annna/bin" 4 5 cfgbase="$(pwd)" 6 ircbase="$(cat ${cfgbase}/ircbase)" 7 8 server="$1" 9 channels="$2" 10 11 export ircuser="$(cat ${cfgbase}/${server}/ircuser 2>/dev/null)" 12 13 maxretries=32 14 # Channels 15 for chan in ${channels}; 16 do 17 printf "/j %s\n" "${chan}" > ${ircbase}/${server}/in 18 19 # Do not flood. 20 sleep 1 21 22 ## Make sure the pipes are there. 23 tries=0 24 while [ ! -e "${ircbase}/${server}/${chan}/out" ]; 25 do 26 [ ! -f ${cfgbase}/running ] && exit 1 27 tries=$(($tries + 1)) 28 [ $tries -gt $maxretries ] && exit 1 29 sleep 1 30 done 31 32 tries=0 33 while [ ! -e "${ircbase}/${server}/${chan}/in" ]; 34 do 35 [ ! -f ${cfgbase}/running ] && exit 1 36 tries=$(($tries + 1)) 37 [ $tries -gt $maxretries ] && exit 1 38 sleep 1 39 done 40 41 tries=0 42 ## Check if we have joined and received the message from the server. 43 while [ -z "$(cat ${ircbase}/${server}/${chan}/out \ 44 | head -n 1 \ 45 | grep ".* ${ircuser}.* ${chan}.*")" ]; 46 do 47 [ ! -f ${cfgbase}/running ] && exit 1 48 tries=$(($tries + 1)) 49 [ $tries -gt $maxretries ] && exit 1 50 sleep 2 51 done 52 53 annna-start-service "${server}" "${chan}" 54 done 55