Bug 17467: (follow-up) Make the install script install koha-zebra
[koha.git] / debian / scripts / koha-start-zebra
index b5e7c6c..513547e 100755 (executable)
 
 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
-}
-
-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
-}
-
-is_zebra_running()
-{
-    local instancename=$1
-
-    if daemon --name="$instancename-koha-zebra" \
-            --user="$instancename-koha.$instancename-koha" \
-            --running ; then
-        return 0
-    else
-        return 1
-    fi
-}
+fi
 
 start_zebra_instance()
 {
     local instancename=$1
 
-    if is_enabled $instancename; then
-        echo "Starting Zebra server for $instancename"
-        daemon \
-            --name="$instancename-koha-zebra" \
-            --errlog="/var/log/koha/$instancename/zebra-error.log" \
-            --stdout="/var/log/koha/$instancename/zebra.log" \
-            --output="/var/log/koha/$instancename/zebra-output.log" \
-            --verbose=1 \
-            --respawn \
-            --delay=30 \
-            --user="$instancename-koha.$instancename-koha" \
-            -- \
-            zebrasrv \
-            -v none,fatal,warn \
-            -f "/etc/koha/sites/$instancename/koha-conf.xml" && \
-        return 0
-    else
+    # get zebra log levels from koha-conf.xml
+    local loglevels=$(get_loglevels $instancename)
+
+    echo "Starting Zebra server for $instancename"
+    touch "/var/log/koha/$instancename/zebra-error.log" \
+        "/var/log/koha/$instancename/zebra-output.log"
+    chown "$instancename-koha:$instancename-koha" \
+        "/var/log/koha/$instancename/zebra-error.log" \
+        "/var/log/koha/$instancename/zebra-output.log"
+    daemon \
+        --name="$instancename-koha-zebra" \
+        --pidfiles="/var/run/koha/$instancename/" \
+        --errlog="/var/log/koha/$instancename/zebra-error.log" \
+        --output="/var/log/koha/$instancename/zebra-output.log" \
+        --verbose=1 \
+        --respawn \
+        --delay=30 \
+        --user="$instancename-koha.$instancename-koha" \
+        -- \
+        zebrasrv \
+        -v $loglevels \
+        -f "/etc/koha/sites/$instancename/koha-conf.xml" && \
+        return 0 || \
         return 1
-    fi
 }
 
 usage()
@@ -108,22 +68,18 @@ EOF
 }
 
 # Parse command line.
-[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
+#[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
 
 # Loop through the instance names
 for name in "$@"
 do
     if is_instance $name ; then
-        if is_enabled $name ; then
-            if ! is_zebra_running $name; then
-                if ! start_zebra_instance $name; then
-                    warn "Something went wrong starting Zebra for $name."
-                fi
-            else
-                warn "Zebra already running for instance $name."
+        if ! is_zebra_running $name; then
+            if ! start_zebra_instance $name; then
+                warn "Something went wrong starting Zebra for $name."
             fi
         else
-            warn "Instance $name disabled. No action taken."
+            warn "Zebra already running for instance $name."
         fi
     else
         warn "Unknown instance $name."