Bug 10379: silence zebra rebuild cron when no instances are enabled
authorRobin Sheat <robin@catalyst.net.nz>
Thu, 30 May 2013 04:12:13 +0000 (16:12 +1200)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 26 Jun 2013 15:55:23 +0000 (08:55 -0700)
This adds a -q option to koha-rebuild-zebra that prevents it outputting
help if no instances are provided on the command line. This means that
if you've just installed the package, you won't get messages from cron
telling you how to use the script.

Test plan:
* install koha-common 3.12 or master onto a system with no enabled
  instances.
* note that you or the sysadmin will start getting emails every 5
  minutes.
* replace /etc/cron.d/koha-common and /usr/sbin/koha-rebuild-zebra with
  the versions from this patch.
* note that the emails stop flowing.

Signed-off-by: Magnus Enger <magnus@enger.priv.no>
"sudo koha-rebuild-zebra -q" gives no output, as expected.
Followed the test plan, all looks good.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
debian/koha-common.cron.d
debian/scripts/koha-rebuild-zebra

index cd7f3c2..f763f30 100644 (file)
@@ -6,5 +6,5 @@
 SHELL=/bin/sh
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
-*/5 * * * * root test -x /usr/sbin/koha-rebuild-zebra && koha-rebuild-zebra $(koha-list --enabled)
+*/5 * * * * root test -x /usr/sbin/koha-rebuild-zebra && koha-rebuild-zebra -q $(koha-list --enabled)
 */15 * * * * root koha-foreach --enabled --email /usr/share/koha/bin/cronjobs/process_message_queue.pl
index f32ca8b..6464958 100755 (executable)
@@ -91,6 +91,7 @@ Options:
     --authorities|-a  Only run process for authorities.
     --biblios|-b      Only run process for biblios.
     --full|-f         Does a reindex of the whole collection.
+    --quiet|-q        Sometimes be a bit quieter for scripts/cronjobs.
     --verbose|-v      Be verbose.
     --help|-h         Print this help.
 
@@ -108,6 +109,9 @@ biblios_only="no"
 authorities_only="no"
 biblios="yes"
 authorities="yes"
+# The '-q' option is intended to prevent the cronjob causing this to output
+# help information if there are no instances defined.
+quiet="no"
 
 # Read parameters
 while [ -n "$*" ]; do
@@ -130,6 +134,9 @@ while [ -n "$*" ]; do
         -v|--verbose)
             opt_verbose="-v"
             ;;
+        -q|--quiet)
+            quiet="yes"
+            ;;
         -*)
             opts_other="$opts_other $1";
             ;;
@@ -142,7 +149,14 @@ while [ -n "$*" ]; do
 done
 
 # Parse command line.
-[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
+if [ $# -lt 1 ]; then
+    if [ "$quiet" = "no" ]; then
+        usage
+        die "Missing instance name."
+    else
+        exit
+    fi
+fi
 
 # Loop over instance names
 for name in "$@"