bug 10548: fix count of missing required dependencies by koha_perl_deps.pl
[koha.git] / debian / scripts / koha-disable
1 #!/bin/sh
2 #
3 # koha-disable - disable 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
20 set -e
21
22
23 die()
24 {
25     echo "$@" 1>&2
26     exit 1
27 }
28
29 warn()
30 {
31     echo "$@" 1>&2
32 }
33
34 is_enabled()
35 {
36     local instancename=$1
37
38     if ! is_instance $instancename; then
39         return 1
40     fi
41
42     if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \
43             "/etc/apache2/sites-available/$instancename" ; then
44         return 1
45     else
46         return 0
47     fi
48 }
49
50 is_instance()
51 {
52     local instancename=$1
53
54     if find /etc/koha/sites -mindepth 1 -maxdepth 1 \
55                          -type d -printf '%f\n'\
56           | grep -q -x $instancename ; then
57         return 0
58     else
59         return 1
60     fi
61 }
62
63 disable_instance()
64 {
65     local instancename=$1
66
67     if is_enabled $instancename; then
68         sed -i 's:^\s*#\(\s*Include /etc/koha/apache-shared-disable.conf\)$:\1:' \
69           "/etc/apache2/sites-available/$instancename"
70         return 0
71     else
72         return 1
73     fi
74 }
75
76 usage()
77 {
78     local scriptname=$0
79     cat <<EOF
80 Disables Koha instances.
81
82 Usage: $scriptname instancename1 instancename2...
83
84 EOF
85 }
86
87 # Parse command line.
88 [ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
89
90 restart_apache="no"
91
92 for name in "$@"
93 do
94     if is_instance $name ; then
95         if disable_instance $name; then
96             restart_apache="yes"
97         else
98             warn "Instance $name already disabled."
99         fi
100     else
101         warn "Unknown instance $name."
102     fi
103 done
104
105 if [ "$restart_apache" = "yes" ]; then
106     /etc/init.d/apache2 restart
107 fi
108
109 exit 0