X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plc.d%2Ffunctions;h=161da9ea03d1ed7c8aa5f2caa89e54c59c462aa1;hb=ff06429772867a55fa0e2bed31306392c67a4405;hp=b5811c76ac09ab9bc228b436fc8d805baaa205c5;hpb=4ab445e93e408e58df6c5b10c840f6c2566cfb19;p=myplc.git diff --git a/plc.d/functions b/plc.d/functions index b5811c7..161da9e 100644 --- a/plc.d/functions +++ b/plc.d/functions @@ -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) +# +# Options +ExecCGI +# Order allow,deny +# Allow from all +# +#### starting with 2.4 it becomes +# apachectl -V +# Server version: Apache/2.4.3 (Fedora) +# +# Options +ExecCGI +# Require all granted +# + +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