48d19bd1dc8b75ce69b452c79c7d8c4b267c63a9
[gentoo.git] / sys-cluster / gearmand / files / gearmand.init.d.2
1 #!/sbin/openrc-run
2 # Copyright 2009-2012 Pavel Stratil, senbonzakura.eu
3 # Distributed under the terms of the MIT license
4
5 pidfile=/var/run/gearmand/gearmand.pid
6 command=/usr/sbin/gearmand
7
8 depend() {
9         use localmount
10
11         case $PERSISTENT in
12           drizzle)
13             use drizzle
14             ;;
15           memcache)
16             use memcache
17             ;;
18           mysql)
19             use mysql
20             ;;
21           postgre)
22             use postgresql
23             ;;
24           *)
25             ;;
26         esac
27 }
28
29 start() {
30         case ${PERSISTENT:-none} in
31           drizzle|mysql)
32             GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libdrizzle"
33             [ ${PERSISTENT_HOST}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-host=${PERSISTENT_HOST}"
34             [ ${PERSISTENT_USER}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-user=${PERSISTENT_USER}"
35             [ ${PERSISTENT_PASS}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-password=${PERSISTENT_PASS}"
36             [ ${PERSISTENT_DB}     ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-db=${PERSISTENT_DB}"
37             [ ${PERSISTENT_TABLE}  ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-table=${PERSISTENT_TABLE}"
38             [ ${PERSISTENT_PORT}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-port=${PERSISTENT_PORT}"
39             [ ${PERSISTENT_SOCKET} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-uds=${PERSISTENT_SOCKET}"
40             [ ${PERSISTENT} == "mysql" ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-mysql"
41             ;;
42           memcache)
43             [ ${PERSISTENT_SERVERLIST} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libmemcached --libmemcached-servers=${PERSISTENT_SERVERLIST}"
44             ;;
45           postgre)
46             GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libpq"
47             [ ${PERSISTENT_HOST}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-host=${PERSISTENT_HOST}"
48             [ ${PERSISTENT_USER}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-user=${PERSISTENT_USER}"
49             [ ${PERSISTENT_PASS}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-password=${PERSISTENT_PASS}"
50             [ ${PERSISTENT_DB}     ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-dbname=${PERSISTENT_DB}"
51             [ ${PERSISTENT_PORT}   ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-port=${PERSISTENT_PORT}"
52             [ ${PERSISTENT_TABLE}  ] && ewarn "Libpq doesn't recognise 'table' parameter."
53             [ ${PERSISTENT_SOCKET} ] && ewarn "Libpq doesn't recognise 'socket' parameter. If no host is set, it automatically falls back to a socket."
54             ;;
55           tokyocabinet)
56             GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libtokyocabinet --libtokyocabinet-file=${PERSISTENT_FILE}"
57             ;;
58           sqlite)
59             GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libsqlite3 --libsqlite3-db=${PERSISTENT_FILE}"
60             ;;
61           none)
62             ;;
63           *)
64             eerror "Wrong persistent queue store setting in /etc/conf.d/gearmand."
65             return 1
66             ;;
67         esac
68
69
70         checkpath -d -m 0755 -o gearmand:nogroup /var/run/gearmand /var/log/gearmand
71
72         ebegin "Starting ${SVCNAME}"
73         start-stop-daemon --pidfile /var/run/gearmand/gearmand.pid --start \
74                 --exec /usr/sbin/gearmand -- --pid-file=/var/run/gearmand/gearmand.pid \
75                 --user=gearmand --daemon \
76                 --log-file=/var/log/gearmand/gearmand.log ${GEARMAND_PARAMS}
77         eend $?
78 }