Bug 18709: Make koha-foreach use koha-shell internally
[koha.git] / debian / scripts / koha-foreach
1 #!/bin/sh
2 # koha-foreach -- run a command for each Koha instance
3 # Copyright 2010  Catalyst IT, Ltd
4
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18 set -e
19
20 # Read configuration variable file if it is present
21 [ -r /etc/default/koha-common ] && . /etc/default/koha-common
22
23 # include helper functions
24 if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
25     . "/usr/share/koha/bin/koha-functions.sh"
26 else
27     echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
28     exit 1
29 fi
30
31 listopts=""
32 while [ ! -z "$1" ]
33 do
34     case "$1" in
35         --email) listopts="$listopts --email";;
36       --noemail) listopts="$listopts --noemail";;
37       --enabled) listopts="$listopts --enabled";;
38      --disabled) listopts="$listopts --disabled";;
39           --sip) listopts="$listopts --sip";;
40         --nosip) listopts="$listopts --nosip";;
41         --plack) listopts="$listopts --plack";;
42       --noplack) listopts="$listopts --noplack";;
43   --letsencrypt) listopts="$listopts --letsencrypt" ;;
44 --noletsencrypt) listopts="$listopts --noletsencrypt" ;;
45               *) break;;
46     esac
47     shift
48 done
49
50 for name in $(koha-list $listopts)
51 do
52     # Replace the __instancename__ placeholder for the instance name (Bug 8566)
53     cmd=`echo "$@" | sed -e s/__instancename__/${name}/g`
54
55     if [ "${cmd}" != "" ]; then
56         koha-shell ${name} -c "${cmd}"
57     fi
58 done