#!/bin/sh
#
# koha-instances -- List all 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 <http://www.gnu.org/licenses/>.


set -e

is_enabled() {
    if grep '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \
            "/etc/apache2/sites-available/$name" > /dev/null
    then
        return 1
    else
        return 0
    fi
}

help() {
    echo <<eoh
Lists Koha instances, optionally only those that are enabled or have
email turned on.
    
Usage: $0 [--enabled] [--email] [-h]
Options:
    --enabled       only show instances that are enabled
    --email         only show instances that have email enabled
    --noemail       only show instances that do not have email enabled
    -h              this help

The filtering options can be combined, and you probably want to do this
(except --email and --noemail, that's just silly.)
eoh
}

enabled=no
email=no
noemail=no
args=$(getopt -l enabled,email,noemail -o h -n $0 -- "$@")
set -- $args
while [ ! -z "$1" ]
do
    case "$1" in
         -h) help; exit;;
    --email) email=yes;;
  --enabled) enabled=yes;;
  --noemail) noemail=yes;;
          *) break;;
    esac
    shift
done

find /etc/koha/sites -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | 
sort |
while read name
do
    [ "$enabled" = yes ] && ! is_enabled "$name" && continue
    [ "$email" = yes ] && [ ! -e /var/lib/koha/$name/email.enabled ] && continue
    [ "$noemail" = yes ] && [ -e /var/lib/koha/$name/email.enabled ] && continue
    echo "$name"
done
