Bug 8566: [SIGNED-OFF] Enable koha-foreach to insert the instancename into commands
authorReed Wade <reed@typist.geek.nz>
Thu, 26 Jun 2014 06:24:07 +0000 (02:24 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Wed, 2 Jul 2014 18:45:25 +0000 (15:45 -0300)
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 <digitalutvikling@gmail.com>
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.

Signed-off-by: Robin Sheat <robin@catalyst.net.nz>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
debian/docs/koha-foreach.xml
debian/scripts/koha-foreach

index c8a612c..4e84463 100644 (file)
@@ -29,6 +29,7 @@
 
   <refsect1><title>Description</title>
   <para>Run a command for each Koha instance. Takes the same arguments as koha-list.</para>
+  <para>The string "__instancename__" is replaced in the argument list with the name of the Koha instance in each iteration.</para>
   </refsect1>
   
   <refsect1><title>See also</title>
index 6bda414..6e4d98d 100755 (executable)
@@ -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: /"