Bug 14858: removed record length limit test
[koha.git] / debian / scripts / koha-disable
index 5d7aa36..2e2e67a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# koha-disable -- disable a Koha instance.
+# koha-disable - disable Koha instances.
 # Copyright 2010  Catalyst IT, Ltd
 # 
 # This program is free software: you can redistribute it and/or modify
 
 set -e
 
-
-die() {
-    echo "$@" 1>&2
+# 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.
 
-# Parse command line.
-[ "$#" = 1 ] || die "Usage: $0 instancename..."
+Usage: $scriptname instancename1 instancename2...
 
+EOF
+}
+
+# Parse command line.
+[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
 
+restart_apache="no"
 for name in "$@"
 do
-    sed -i 's:^\s*#\(\s*Include /etc/koha/apache-shared-disable.conf\)$:\1:' \
-        "/etc/apache2/sites-available/$name"
+    if is_instance $name ; then
+        RET=$(disable_instance $name)
+        if [ "$RET" = 0 ]; then
+            restart_apache="yes"
+            if is_sip_enabled $name; then
+                koha-stop-sip $name
+            fi
+            if is_zebra_running $name; then
+                koha-stop-zebra $name
+            fi
+            if is_indexer_running $name; then
+                koha-indexer --stop $name
+            fi
+        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
 
-/etc/init.d/apache2 restart
+if [ "$restart_apache" = "yes" ]; then
+    /etc/init.d/apache2 restart
+fi
+
+exit 0