#!/bin/sh
#
# koha-disable - disable Koha instances.
# Copyright 2010  Catalyst IT, Ltd
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.


set -e

# include helper functions
if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
    . "/usr/share/koha/bin/koha-functions.sh"
else
    echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
    exit 1
fi

disable_instance()
{
    local instancename=$1
    local instancefile=$(get_apache_config_for "$instancename")

    if [ "$instancefile" = "" ]; then
        echo 2
    elif is_enabled $instancename; then
        sed -i 's:^\s*#\(\s*Include /etc/koha/apache-shared-disable.conf\)$:\1:' "$instancefile"
        echo 0
    else
        echo 1
    fi
}

usage()
{
    local scriptname=$0
    cat <<EOF
Disables Koha instances.

Usage: $scriptname instancename1 instancename2...

EOF
}

# Parse command line.
[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )

restart_apache="no"
for name in "$@"
do
    if is_instance $name ; then
        RET=$(disable_instance $name)
        if [ "$RET" = 0 ]; then
            restart_apache="yes"
            if is_sip_enabled $name; then
                koha-sip --stop $name
            fi
            if is_zebra_running $name; then
                koha-zebra --stop $name
            fi
            if is_indexer_running $name; then
                koha-indexer --stop $name
            fi
            for queue in $(get_worker_queues); do
                if is_worker_running $name $queue; then
                    koha-worker --queue $queue --stop $name
                fi
            done
        elif [ "$RET" = 2 ]; then
            warn "Error: Apache configuration file not present for instance $name."
        else
            warn "Warning: instance $name already disabled."
        fi
    else
        warn "Unknown instance $name."
    fi
done

if [ "$restart_apache" = "yes" ]; then
    /etc/init.d/apache2 restart
fi

exit 0
