Merge remote branch 'kc/master'
[koha.git] / debian / scripts / koha-list
1 #!/bin/sh
2 #
3 # koha-instances -- List all 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 is_enabled() {
23     if grep '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \
24             "/etc/apache2/sites-available/$name" > /dev/null
25     then
26         return 1
27     else
28         return 0
29     fi
30 }
31
32 help() {
33     echo <<eoh
34 Lists Koha instances, optionally only those that are enabled or have
35 email turned on.
36     
37 Usage: $0 [--enabled] [--email] [-h]
38 Options:
39     --enabled       only show instances that are enabled
40     --email         only show instances that have email enabled
41     --noemail       only show instances that do not have email enabled
42     -h              this help
43
44 The filtering options can be combined, and you probably want to do this
45 (except --email and --noemail, that's just silly.)
46 eoh
47 }
48
49 enabled=no
50 email=no
51 noemail=no
52 args=$(getopt -l enabled,email,noemail -o h -n $0 -- "$@")
53 set -- $args
54 while [ ! -z "$1" ]
55 do
56     case "$1" in
57          -h) help; exit;;
58     --email) email=yes;;
59   --enabled) enabled=yes;;
60   --noemail) noemail=yes;;
61           *) break;;
62     esac
63     shift
64 done
65
66 find /etc/koha/sites -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | 
67 sort |
68 while read name
69 do
70     [ "$enabled" = yes ] && ! is_enabled "$name" && continue
71     [ "$email" = yes ] && [ ! -e /var/lib/koha/$name/email.enabled ] && continue
72     [ "$noemail" = yes ] && [ -e /var/lib/koha/$name/email.enabled ] && continue
73     echo "$name"
74 done