@@ -, +, @@ --------- --- debian/scripts/koha-functions.sh | 54 ++++++++++++++++++++++++-- debian/scripts/koha-plack | 84 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 126 insertions(+), 12 deletions(-) --- a/debian/scripts/koha-functions.sh +++ a/debian/scripts/koha-functions.sh @@ -199,6 +199,40 @@ is_indexer_running() fi } +is_plack_enabled_opac() +{ + local instancefile=$1 + + if [ "$instancefile" = "" ]; then + return 1 + fi + + # remember 0 means success/true in bash. + if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-opac-plack.conf' \ + "$instancefile" ; then + return 0 + else + return 1 + fi +} + +is_plack_enabled_intranet() +{ + local instancefile=$1 + + if [ "$instancefile" = "" ]; then + return 1 + fi + + # remember 0 means success/true in bash. + if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-intranet-plack.conf' \ + "$instancefile" ; then + return 0 + else + return 1 + fi +} + is_plack_enabled() { local site=$1 @@ -208,10 +242,22 @@ is_plack_enabled() return 1 fi - if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-opac-plack.conf' \ - "$instancefile" && \ - grep -q '^[[:space:]]*Include /etc/koha/apache-shared-intranet-plack.conf' \ - "$instancefile" ; then + if is_plack_enabled_opac $instancefile ; then + enabledopac=1 + else + enabledopac=0 + fi + if is_plack_enabled_intranet $instancefile ; then + enabledintra=1 + else + enabledintra=0 + fi + + # remember 0 means success/true in bash. + if [ "$enabledopac" != "$enabledintra" ] ; then + echo "$site has a plack configuration error. Enable or disable plack to correct this." + return 0 + elif [ "$enabledopac" = "1" ] ; then return 0 else return 1 --- a/debian/scripts/koha-plack +++ a/debian/scripts/koha-plack @@ -181,14 +181,48 @@ enable_plack() local instancename=$1 local instancefile=$(get_apache_config_for "$instancename") - if ! is_plack_enabled $instancename; then - # Uncomment the plack related lines for OPAC and intranet + alreadyopac=0 + alreadyintra=0 + failopac=0 + failintra=0 + if ! is_plack_enabled_opac $instancefile; then + # Uncomment the plack related lines for OPAC sed -i 's:^\s*#\(\s*Include /etc/koha/apache-shared-opac-plack.conf\)$:\1:' "$instancefile" + if ! is_plack_enabled_opac $instancefile; then + [ "${quiet}" != "yes" ] && warn "Plack not enabled for ${instancename} OPAC" + failopac=1 + else + [ "${quiet}" != "yes" ] && warn "Plack enabled for ${instancename} OPAC" + fi + else + [ "${quiet}" != "yes" ] && warn "Plack already enabled for ${instancename} OPAC" + alreadyopac=1 + fi + if ! is_plack_enabled_intranet $instancefile; then + # Uncomment the plack related lines for intranet sed -i 's:^\s*#\(\s*Include /etc/koha/apache-shared-intranet-plack.conf\)$:\1:' "$instancefile" - [ "${quiet}" != "yes" ] && warn "Plack enabled for ${instancename}" + if ! is_plack_enabled_intranet $instancefile; then + [ "${quiet}" != "yes" ] && warn "Plack not enabled for ${instancename} Intranet" + failintra=1 + else + [ "${quiet}" != "yes" ] && warn "Plack enabled for ${instancename} Intranet" + fi + else + [ "${quiet}" != "yes" ] && warn "Plack already enabled for ${instancename} Intranet" + alreadyintra=1 + fi + + # Fail if it was already plack enabled. + if [ $alreadyopac -eq 1 ] && [ $alreadyintra -eq 1 ] ; then + return 1 + elif [ "$alreadyopac" != "$alreadyintra" ]; then + [ "${quiet}" != "yes" ] && warn "$instancename had a plack configuration error. Please confirm it is corrected." + fi + + # Succeed if both or any plack were turned on. + if [ $failopac -eq 0 ] || [ $failintra -eq 0 ] ; then return 0 else - [ "${quiet}" != "yes" ] && warn "Plack already enabled for ${instancename}" return 1 fi } @@ -198,14 +232,48 @@ disable_plack() local instancename=$1 local instancefile=$(get_apache_config_for "$instancename") - if is_plack_enabled $instancename; then - # Comment out the plack related lines for OPAC and intranet + alreadyopac=0 + alreadyintra=0 + failopac=0 + failintra=0 + if is_plack_enabled_opac $instancefile ; then + # Comment the plack related lines for OPAC sed -i 's:^\(\s*Include /etc/koha/apache-shared-opac-plack.conf\)$:#\1:' "$instancefile" + if is_plack_enabled_opac $instancefile ; then + [ "${quiet}" != "yes" ] && warn "Plack not disabled for ${instancename} OPAC" + failopac=1 + else + [ "${quiet}" != "yes" ] && warn "Plack disabled for ${instancename} OPAC" + fi + else + [ "${quiet}" != "yes" ] && warn "Plack already disabled for ${instancename} OPAC" + alreadyopac=1 + fi + if is_plack_enabled_intranet $instancefile; then + # Comment the plack related lines for intranet sed -i 's:^\(\s*Include /etc/koha/apache-shared-intranet-plack.conf\)$:#\1:' "$instancefile" - [ "${quiet}" != "yes" ] && warn "Plack disabled for ${instancename}" + if is_plack_enabled_intranet $instancefile; then + [ "${quiet}" != "yes" ] && warn "Plack not disabled for ${instancename} Intranet" + failintra=1 + else + [ "${quiet}" != "yes" ] && warn "Plack disabled for ${instancename} Intranet" + fi + else + [ "${quiet}" != "yes" ] && warn "Plack already disabled for ${instancename} Intranet" + alreadyintra=1 + fi + + # Fail if it was already plack disabled. + if [ $alreadyopac -eq 1 ] && [ $alreadyintra -eq 1 ] ; then + return 1 + elif [ "$alreadyopac" != "$alreadyintra" ]; then + [ "${quiet}" != "yes" ] && warn "$instancename had a plack configuration error. Please confirm it is corrected." + fi + + # Succeed if both or any plack were turned off. + if [ $failopac -eq 0 ] || [ $failintra -eq 0 ] ; then return 0 else - [ "${quiet}" != "yes" ] && warn "Plack already disabled for ${instancename}" return 1 fi } --