Bug 18709: Make koha-foreach use koha-shell internally
authorTomas Cohen Arazi <tomascohen@theke.io>
Tue, 27 Jun 2017 14:55:45 +0000 (11:55 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 11 Oct 2017 15:40:32 +0000 (12:40 -0300)
This patch simplifies the koha-foreach script, making it use koha-shell
to gain instance privileges and have all environment variables set.

To test:
- Apply the patch
- Have one or more instances created (kohadev already exists in kohadevbox, add
  another onewith $ sudo koha-create --create-db test)
- Run:
  $ sudo kohaclone/debian/scripts/koha-foreach echo "This is instance __instancename__"
=> SUCCESS: The script runs gracefuly, and outputs something like:
This is instance kohadev
This is instance test
  Note: this means the command was executed for each instance and the current behaviour
        of replacing the placeholder __instancename__ for the actual instance name still
        works as expected.
- You can try the different filter switches, but the logic has not been touched. only the
  command call.
- Sign off :-D

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

debian/scripts/koha-foreach

index 5262cc5..50f96c7 100755 (executable)
@@ -46,21 +46,13 @@ do
     esac
     shift
 done
-            
+
 for name in $(koha-list $listopts)
 do
-    # Optionally use alternative paths for a dev install
-    adjust_paths_dev_install $name
-
+    # Replace the __instancename__ placeholder for the instance name (Bug 8566)
     cmd=`echo "$@" | sed -e s/__instancename__/${name}/g`
-    (
-    exec 3>&1
-    sudo -u "$name-koha" \
-    env PERL5LIB=$PERL5LIB \
-        KOHA_CONF="/etc/koha/sites/$name/koha-conf.xml" \
-        ${cmd} 2>&1 >&3 | sed -e "s/^/$name: /" >&2 3>&-
-    exec 3>&-
-    ) | sed -e "s/^/$name: /"
 
+    if [ "${cmd}" != "" ]; then
+        koha-shell ${name} -c "${cmd}"
+    fi
 done
-