Bug 11404: koha-functions.sh introduced for reuse
[koha.git] / debian / scripts / koha-start-zebra
1 #!/bin/sh
2 #
3 # koha-start-zebra - Start Zebra for named Koha instances
4 # Copyright 2010  Catalyst IT, Ltd
5
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 set -e
20
21 # include helper functions
22 if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
23     . "/usr/share/koha/bin/koha-functions.sh"
24 else
25     echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
26     exit 1
27 fi
28
29 start_zebra_instance()
30 {
31     local instancename=$1
32
33     echo "Starting Zebra server for $instancename"
34     touch "/var/log/koha/$instancename/zebra-error.log" \
35         "/var/log/koha/$instancename/zebra.log" \
36         "/var/log/koha/$instancename/zebra-output.log"
37     chown "$instancename-koha:$instancename-koha" \
38         "/var/log/koha/$instancename/zebra-error.log" \
39         "/var/log/koha/$instancename/zebra.log" \
40         "/var/log/koha/$instancename/zebra-output.log"
41     daemon \
42         --name="$instancename-koha-zebra" \
43         --errlog="/var/log/koha/$instancename/zebra-error.log" \
44         --stdout="/var/log/koha/$instancename/zebra.log" \
45         --output="/var/log/koha/$instancename/zebra-output.log" \
46         --verbose=1 \
47         --respawn \
48         --delay=30 \
49         --user="$instancename-koha.$instancename-koha" \
50         -- \
51         zebrasrv \
52         -v none,fatal,warn \
53         -f "/etc/koha/sites/$instancename/koha-conf.xml" && \
54         return 0 || \
55         return 1
56 }
57
58 usage()
59 {
60     local scriptname=$0
61     cat <<EOF
62 Starts Zebra for Koha instances.
63
64 Usage: $scriptname instancename1 instancename2...
65
66 EOF
67 }
68
69 # Parse command line.
70 #[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
71
72 # Loop through the instance names
73 for name in "$@"
74 do
75     if is_instance $name ; then
76         if is_enabled $name ; then
77             if ! is_zebra_running $name; then
78                 if ! start_zebra_instance $name; then
79                     warn "Something went wrong starting Zebra for $name."
80                 fi
81             else
82                 warn "Zebra already running for instance $name."
83             fi
84         else
85             warn "Instance $name disabled. No action taken."
86         fi
87     else
88         warn "Unknown instance $name."
89     fi
90 done
91
92 exit 0