annna-start-server - 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-start-server (1507B)
---
1 #!/bin/sh
2
3 export IRC_SERVERBASE="${ANNNA_IRCBASE}/${IRC_SERVER}"
4 while annna-alive;
5 do
6 rm -rf "${IRC_SERVERBASE}"
7 mkdir -p "${IRC_SERVERBASE}"
8
9 [ $IRC_TLS -gt 0 ] && tlsparam=" -v -t"
10 [ -n "${IRC_USER}" ] && ircuserparam=" -n ${IRC_USER}"
11 ircpassparam=""
12 [ -n "${IRC_PASS}" ] && ircpassparam=" -k IRC_PASS"
13
14 ii -s "${IRC_SERVER}"${ircpassparam}${ircuserparam}${tlsparam} \
15 -i "${ANNNA_IRCBASE}" -f "${IRC_NAME}" -p ${IRC_PORT} 2>&1 \
16 | while read -r servermsg;
17 do
18 annna-alive || exit 1
19 servermsg="$(printf "%s\n" "${servermsg}" | sed -e 's,\r$,,')"
20
21 export IRC_PASS=
22 export IRC_CMD_USER="$(printf "%s\n" "${servermsg}" \
23 | cut -d' ' -f 2 \
24 | cut -d':' -f 2 \
25 | cut -d'!' -f 1)"
26 export IRC_CMD="$(printf "%s\n" "${servermsg}" \
27 | cut -d' ' -f 3)"
28 export IRC_PRIVMSG_TEXT=""
29
30 case "${IRC_CMD}" in
31 "433") exit 1;; # Nickname in use.
32 "001") annna-join-channels;; # Welcome.
33 "NICK"|"353"|"332"|"PING");;
34 "PART")
35 export IRC_CHANNEL="$(printf "%s\n" "${servermsg}" \
36 | cut -d' ' -f 4)"
37 annna-channel-message;;
38 "JOIN")
39 export IRC_CHANNEL="$(printf "%s\n" "${servermsg}" \
40 | cut -d' ' -f 4 \
41 | cut -d':' -f 2-)"
42 annna-channel-message;;
43 "PRIVMSG"|"NOTICE")
44 export IRC_CHANNEL="$(printf "%s\n" "${servermsg}" \
45 | cut -d' ' -f 4)"
46 export IRC_PRIVMSG_TEXT="$(printf "%s\n" "${servermsg}" \
47 | cut -d' ' -f 5- \
48 | cut -d':' -f 2-)"
49 annna-channel-message;;
50 esac
51 done
52
53 rm -rf "${IRC_SERVERBASE}"
54 [ ! -f "${IRC_SERVER}/reconnect" ] && break
55 sleep 5
56 done
57