startup scripts : assume initscripts is not installed, only use systemctl
[myplc.git] / plc.d / functions
index b5811c7..161da9e 100644 (file)
@@ -7,8 +7,22 @@
 
 export PATH=/sbin:/bin:/usr/bin:/usr/sbin
 
-# Source function library
-. /etc/init.d/functions
+# covering for former /etc/init.d/functions
+function success() {
+    echo success "$@"
+    true
+}
+
+function failure() {
+    echo failure "$@"
+    false
+}
+
+function action() {
+    local message="$1"; shift
+    echo $message
+    "$@"
+}
 
 # Total number of errors
 ERRORS=0
@@ -18,7 +32,6 @@ function check () {
     ERRORS=$(($ERRORS+$?))
 }
 
-# Print status header
 function dialog () {
     echo -n "PLC: $*: " >&3
 }
@@ -26,9 +39,9 @@ function dialog () {
 # Print result
 function result () {
     if [ $ERRORS -eq 0 ] ; then
-       success "$*" >&3
+        success "$@" >&3
     else
-       failure "$*" >&3
+        failure "$@" >&3
     fi
     echo >&3
 }
@@ -39,11 +52,11 @@ function plc_daemon () {
 
     # See if it's already running. Look *only* at the pid file.
     if [ -f /var/run/plc_${base}.pid ]; then
-       local line p
-       read line < /var/run/plc_${base}.pid
-       for p in $line ; do
-               [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
-       done
+        local line p
+        read line < /var/run/plc_${base}.pid
+        for p in $line ; do
+                [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
+        done
     fi
 
     [ -n "${pid:-}" -a -z "${force:-}" ] && return
@@ -62,7 +75,7 @@ function plc_daemon () {
     ret=$?
 
     if [ -f /var/run/${base}.pid ] ; then
-       mv /var/run/${base}.pid /var/run/plc_${base}.pid
+        mv /var/run/${base}.pid /var/run/plc_${base}.pid
     fi
 
     return $ret
@@ -83,23 +96,23 @@ function symlink () {
 # Argument(s) or stdin to lowercase stdout
 function lower () {
     if [ ${#*} -ge 1 ] ; then
-       tr A-Z a-z <<<$*
+        tr A-Z a-z <<<$*
     else
-       tr A-Z a-z
+        tr A-Z a-z
     fi
 }
 
 # Argument(s) or stdin to uppercase stdout
 function upper () {
     if [ ${#*} -ge 1 ] ; then
-       tr a-z A-Z <<<$*
+        tr a-z A-Z <<<$*
     else
-       tr a-z A-Z
+        tr a-z A-Z
     fi
 }
 
 # Regenerate configuration files
-function reload () {
+function plc_reload () {
     force=$1
 
     # Regenerate the main configuration file from default values
@@ -138,6 +151,46 @@ function reload () {
     fi
 }
 
+#################### feb 2013 for f18
+# Authorization directives change in apache 2.4
+# http://httpd.apache.org/docs/2.4/upgrading.html#access
+#### up to 2.2, this would be e.g.
+# apachectl -V
+# Server version: Apache/2.2.22 (Unix)
+# <Directory "/usr/share/plc_api/apache">
+# Options       +ExecCGI
+# Order allow,deny
+# Allow from all
+# </Directory>
+#### starting with 2.4 it becomes
+# apachectl -V
+# Server version: Apache/2.4.3 (Fedora)
+# <Directory "/usr/share/plc_api/apache">
+# Options       +ExecCGI
+# Require       all granted
+# </Directory>
+
+function apache_newauth () {
+    apache_version=$(apachectl -V 2> /dev/null | grep 'Server version' | cut -d ' ' -f3 | sed -e 's,^.*/,,')
+    apache_major=$(echo $apache_version | cut -d. -f1)
+    apache_minor=$(echo $apache_version | cut -d. -f2)
+    test "$apache_minor" -ge 4
+}
+function apache_allow () {
+    if apache_newauth; then
+        echo -e "Require all granted"
+    else
+        echo -e "Order allow,deny\n   Allow from all"
+    fi
+}
+function apache_forbid () {
+    if apache_newauth; then
+        echo -e "Require all denied"
+    else
+        echo -e "Order deny,allow\n   Deny from all"
+    fi
+}
+
 # Make copies of stdout and stderr. The plc initscript redirects
 # stdout and stderr to a logfile if -v is not specified.
 [ ! -e /proc/self/fd/3 ] && exec 3>&1