net/bird: update to version 1.2.5
[openwrt/svn-archive/archive.git] / net / znc / files / znc.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2010 Openwrt.org
3
4 START=60
5
6 PID_FILE=/tmp/etc/znc/znc.pid
7 ZNC_CONFIG=/tmp/etc/znc/configs/znc.conf
8
9 add_param() {
10 echo "$1 = $2" >> $ZNC_CONFIG
11 }
12
13 znc_global() {
14 local znc="$1"
15 local anoniplimit
16 local maxbuffersize
17 local connectdelay
18 local serverthrottle
19
20
21 config_get anoniplimit "$znc" anoniplimit
22 config_get maxbuffersize "$znc" maxbuffersize
23 config_get connectdelay "$znc" connectdelay
24 config_get serverthrottle "$znc" serverthrottle
25
26 [ -z $anoniplimit ] || echo "AnonIPLimit = $anoniplimit" >> $ZNC_CONFIG
27 [ -z $maxbuffersize ] || echo "MaxBufferSize = $maxbuffersize" >> $ZNC_CONFIG
28 [ -z $connectdelay ] || echo "ConnectDelay = $connectdelay" >> $ZNC_CONFIG
29 [ -z $serverthrottle ] || echo "ServerThrottle = $anoniplimit" >> $ZNC_CONFIG
30
31 echo "PidFile = $PID_FILE" >> $ZNC_CONFIG
32
33 config_list_foreach "$znc" listener "add_param Listener"
34 config_list_foreach "$znc" module "add_param LoadModule"
35 }
36
37 add_user() {
38 local user="$1"
39 local password
40 local nick
41 local altnick
42 local ident
43 local realname
44 local buffer
45 local quitmsg
46 local chanmodes
47 local vhost
48
49 config_get password "$user" password
50 config_get nick "$user" nick
51 config_get altnick "$user" altnick
52 config_get ident "$user" ident
53 config_get realname "$user" realname
54 config_get buffer "$user" buffer
55 config_get quitmsg "$user" quitmsg
56 config_get chanmodes "$user" chanmodes
57 config_get vhost "$user" vhost
58
59 echo "<User $user>" >> $ZNC_CONFIG
60 echo " Pass = plain#$password" >> $ZNC_CONFIG
61 echo " Nick = $nick" >> $ZNC_CONFIG
62 echo " AltNick = ${altnick:-$nick"_"}" >> $ZNC_CONFIG
63 echo " Ident = ${ident:-$nick}" >> $ZNC_CONFIG
64 echo " RealName = ${realname:-$nick}" >> $ZNC_CONFIG
65 [ -z "$vhost" ] || echo " VHost = $vhost" >> $ZNC_CONFIG
66 echo " Buffer = ${buffer:-50}" >> $ZNC_CONFIG
67 echo " KeepBuffer = false" >> $ZNC_CONFIG
68 echo " ChanModes = ${chanmodes:-"+stn"}" >> $ZNC_CONFIG
69 [ -z "$quitmsg" ] || echo " QuitMsg = $quitmsg" >> $ZNC_CONFIG
70
71 config_list_foreach "$user" server "add_param \" Server\""
72 config_list_foreach "$user" module "add_param \" LoadModule\""
73 echo "</User>" >> $ZNC_CONFIG
74 }
75
76
77 start() {
78 mkdir -p /tmp/etc/znc/configs/
79 [ -f "$ZNC_CONFIG" ] && rm "$ZNC_CONFIG"
80 config_load znc
81 config_foreach znc_global znc
82 config_foreach add_listener listener
83 config_foreach add_user user
84
85 chown -R nobody:nogroup /tmp/etc/znc
86 su -s /bin/ash -c "/usr/bin/znc -d/tmp/etc/znc" nobody
87 }
88
89 stop() {
90 [ -f "$PID_FILE" ] && kill $(cat "$PID_FILE")
91 }
92