From cc21ab26fb29ad81cf34eabeec02932ff00717ac Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 13 Aug 2015 14:49:01 -0300 Subject: [PATCH] Bug 13791: make koha-list aware of plack This patch adds the --plack and --noplack option switches to koha-list for filtering instances to be listed. This is particularly important for init scripts and cronjobs. To test: - Play with koha-list --plack and koha-plack --enable/--disable and verify that koha-list returns the expected results. --- debian/scripts/koha-foreach | 5 ++++ debian/scripts/koha-functions.sh | 4 +-- debian/scripts/koha-list | 61 +++++++++++++++++++++++++++++++++------- 3 files changed, 58 insertions(+), 12 deletions(-) diff --git a/debian/scripts/koha-foreach b/debian/scripts/koha-foreach index 6e4d98d..925d90b 100755 --- a/debian/scripts/koha-foreach +++ b/debian/scripts/koha-foreach @@ -25,6 +25,11 @@ do --email) listopts="$listopts --email";; --noemail) listopts="$listopts --noemail";; --enabled) listopts="$listopts --enabled";; + --disabled) listopts="$listopts --disabled";; + --sip) listopts="$listopts --sip";; + --nosip) listopts="$listopts --nosip";; + --plack) listopts="$listopts --plack";; + --noplack) listopts="$listopts --noplack";; *) break;; esac shift diff --git a/debian/scripts/koha-functions.sh b/debian/scripts/koha-functions.sh index 06ca274..34c6396 100755 --- a/debian/scripts/koha-functions.sh +++ b/debian/scripts/koha-functions.sh @@ -134,9 +134,9 @@ is_plack_enabled() "$instancefile" && \ grep -q '^[[:space:]]*Include /etc/koha/apache-shared-intranet-plack.conf' \ "$instancefile" ; then - return 1 - else return 0 + else + return 1 fi } diff --git a/debian/scripts/koha-list b/debian/scripts/koha-list index 848494b..73ce075 100755 --- a/debian/scripts/koha-list +++ b/debian/scripts/koha-list @@ -37,20 +37,23 @@ show_instances() case $show in "all") if instance_filter_email $instance $show_email && \ - instance_filter_sip $instance $show_sip; then + instance_filter_plack $instance $show_plack && \ + instance_filter_sip $instance $show_sip; then echo $instance fi ;; "enabled") if is_enabled $instance; then if instance_filter_email $instance $show_email && \ - instance_filter_sip $instance $show_sip; then + instance_filter_plack $instance $show_plack && \ + instance_filter_sip $instance $show_sip; then echo $instance fi fi ;; "disabled") if ! is_enabled $instance; then if instance_filter_email $instance $show_email && \ - instance_filter_sip $instance $show_sip; then + instance_filter_plack $instance $show_plack && \ + instance_filter_sip $instance $show_sip; then echo $instance fi fi ;; @@ -81,6 +84,28 @@ instance_filter_sip() return 1 } +instance_filter_plack() +{ + local instancename=$1 + local show_plack=$2; + + case $show_plack in + "all") + return 0 ;; + "enabled") + if is_plack_enabled $instancename; then + return 0 + fi ;; + "disabled") + if ! is_plack_enabled $instancename; then + return 0 + fi ;; + esac + + # Didn't match any criteria + return 1 +} + instance_filter_email() { local instancename=$1 @@ -125,6 +150,17 @@ set_show_email() fi } +set_show_plack() +{ + local plack_param=$1 + + if [ "$show_plack" = "all" ]; then + show_plack=$plack_param + else + die "Error: --plack and --noplack are mutually exclusive." + fi +} + set_show_sip() { local sip_param=$1 @@ -146,12 +182,14 @@ email turned on. Usage: $scriptname [--enabled|--disabled] [--email|--noemail] [--sip|--nosip] [-h] Options: - --enabled Only show instances that are enabled - --disabled Only show instances that are disabled - --email Only show instances that have email enabled - --noemail Only show instances that do not have email enabled - --sip Only show instances that have SIP enabled - --nosip Only show instances that do not have SIP enabled + --enabled Show enabled instances + --disabled Show disabled instances + --email Show instances with email enabled + --noemail Show instances with email disabled + --sip Show instances with SIP enabled + --nosip Show instances with SIP disabled + --plack Show instances with Plack enabled + --noplack Show instances with Plack disabled --help | -h Show this help The filtering options can be combined, and you probably want to do this @@ -162,8 +200,9 @@ EOH show="all" show_email="all" show_sip="all" +show_plack="all" -args=$(getopt -l help,enabled,disabled,email,noemail,sip,nosip -o h -n $0 -- "$@") +args=$(getopt -l help,enabled,disabled,email,noemail,sip,nosip,plack,noplack -o h -n $0 -- "$@") set -- $args while [ ! -z "$1" ] @@ -174,6 +213,8 @@ do --noemail) set_show_email "disabled" ;; --sip) set_show_sip "enabled" ;; --nosip) set_show_sip "disabled" ;; + --plack) set_show_plack "enabled" ;; + --noplack) set_show_plack "disabled" ;; --enabled) set_show "enabled" ;; --disabled) set_show "disabled" ;; *) break;; -- 2.5.0