set -e
-die() {
+die()
+{
echo "$@" 1>&2
exit 1
}
+warn()
+{
+ echo "$@" 1>&2
+}
+
+is_enabled()
+{
+ local instancename=$1
+
+ if ! is_instance $instancename; then
+ return 1
+ fi
+
+ if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \
+ "/etc/apache2/sites-available/$instancename" ; then
+ return 1
+ else
+ return 0
+ fi
+}
+
+is_instance()
+{
+ local instancename=$1
+
+ if find /etc/koha/sites -mindepth 1 -maxdepth 1 \
+ -type d -printf '%f\n'\
+ | grep -q -x $instancename ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+enable_instance()
+{
+ local instancename=$1
+
+ if ! is_enabled $instancename; then
+ sed -i 's:^\(\s*Include /etc/koha/apache-shared-disable.conf\)$:#\1:' \
+ "/etc/apache2/sites-available/$instancename"
+ return 0
+ else
+ return 1
+ fi
+}
+
+usage()
+{
+ local scriptname=$0
+ cat <<EOF
+Enables Koha instances.
+
+Usage: $scriptname instancename1 instancename2...
+
+EOF
+}
# Parse command line.
-[ "$#" = 1 ] || die "Usage: $0 instancename..."
+[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
+restart_apache="no"
for name in "$@"
do
- sed -i 's:^\(\s*Include /etc/koha/apache-shared-disable.conf\)$:#\1:' \
- "/etc/apache2/sites-available/$name"
+ if is_instance $name ; then
+ if enable_instance $name; then
+ restart_apache="yes"
+ else
+ warn "Instance $name already enabled."
+ fi
+ else
+ warn "Unknown instance $name."
+ fi
done
-/etc/init.d/apache2 restart
+if [ "$restart_apache" = "yes" ]; then
+ /etc/init.d/apache2 restart
+fi
+
+exit 0