From 71d59af58aea080c8fe93630612e3a73067b506e Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 26 May 2017 16:24:35 +0200 Subject: [PATCH] testing: Add wrapper around service command When charon is started via service command LEAK_DETECTIVE_LOG is not set because the command strips the environment. Since we only want the variable to be set during the automated test runs we can't just set it in /etc/default/charon. Instead, we do so in this wrapper when charon is started and remove the variable again when it is stopped. --- testing/hosts/default/usr/local/bin/service | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 testing/hosts/default/usr/local/bin/service diff --git a/testing/hosts/default/usr/local/bin/service b/testing/hosts/default/usr/local/bin/service new file mode 100755 index 0000000000..c5db4f61b7 --- /dev/null +++ b/testing/hosts/default/usr/local/bin/service @@ -0,0 +1,22 @@ +#!/bin/bash +# +# LEAK_DETECTIVE_LOG is set for automated runs, however, `service` strips +# the environment. This wrapper is used to set the variable for the charon +# init script. + +ORIG=/usr/sbin/service +CONF=/etc/default/charon + +if [[ "$1" != "charon" ]]; then + $ORIG "$@" +fi + +if [[ "$2" == "start" && -n $LEAK_DETECTIVE_LOG ]]; then + echo "export LEAK_DETECTIVE_LOG=$LEAK_DETECTIVE_LOG" >> $CONF +fi + +$ORIG "$@" + +if [[ "$2" == "stop" ]]; then + sed -i '/LEAK_DETECTIVE_LOG/d' $CONF 2>/dev/null +fi -- 2.47.2