updated release notes for 3.14.0 beta
[koha.git] / debian / scripts / koha-enable
old mode 100644 (file)
new mode 100755 (executable)
index 3ceef2e..c0bbfa2
 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