From 3845e3e0f39f11bab079f196338569900604ba46 Mon Sep 17 00:00:00 2001 From: Reed Wade Date: Thu, 26 Jun 2014 02:24:07 -0400 Subject: [PATCH] Bug 8566: Enable koha-foreach to insert the instancename into commands koha-foreach has been modified to replace __instancename__ with $name on each iteration using sed. The docbook file for koha-foreach has also been updated to reflect the new functionality. To test: koha-foreach ls -ld /etc/koha/sites/__instancename__ should list directories instead of giving an error message. Signed-off-by: Magnus Enger The suggested example with ls works as expected, as does my more complex example with fines.pl: koha-foreach --enabled /usr/share/koha/bin/cronjobs/fines.pl \ --out /var/log/koha/__instancename__/ The man page looks good too. --- debian/docs/koha-foreach.xml | 1 + debian/scripts/koha-foreach | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/docs/koha-foreach.xml b/debian/docs/koha-foreach.xml index c8a612c..4e84463 100644 --- a/debian/docs/koha-foreach.xml +++ b/debian/docs/koha-foreach.xml @@ -29,6 +29,7 @@ Description Run a command for each Koha instance. Takes the same arguments as koha-list. + The string "__instancename__" is replaced in the argument list with the name of the Koha instance in each iteration. See also diff --git a/debian/scripts/koha-foreach b/debian/scripts/koha-foreach index 6bda414..6e4d98d 100755 --- a/debian/scripts/koha-foreach +++ b/debian/scripts/koha-foreach @@ -32,12 +32,13 @@ done for name in $(koha-list $listopts) do + cmd=`echo "$@" | sed -e s/__instancename__/${name}/g` ( exec 3>&1 sudo -u "$name-koha" \ env PERL5LIB=/usr/share/koha/lib \ KOHA_CONF="/etc/koha/sites/$name/koha-conf.xml" \ - "$@" 2>&1 >&3 | sed -e "s/^/$name: /" >&2 3>&- + ${cmd} 2>&1 >&3 | sed -e "s/^/$name: /" >&2 3>&- exec 3>&- ) | sed -e "s/^/$name: /" -- 1.9.1