X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-lib.in;h=48d0c36c87513cb7018d7d9ac3b079c9dfc7b62e;hb=0ef165ecb57943e17a8ee8270df68ffb8d032e29;hp=0b6f42ffcaf770556ede3c7e3efb6832b62eaafe;hpb=9d46457e07cad9cd39b3f0ddb2ca9a50e74361b8;p=sliver-openvswitch.git diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in index 0b6f42ffc..48d0c36c8 100644 --- a/utilities/ovs-lib.in +++ b/utilities/ovs-lib.in @@ -41,11 +41,6 @@ ovs_ctl_log () { echo "$@" >> "${logdir}/ovs-ctl.log" } -stdintoexitstatus () { - read exitstatus - return $exitstatus -} - ovs_ctl () { case "$@" in *"=strace"*) @@ -54,15 +49,21 @@ ovs_ctl () { # pipe). So, do not log the o/p to ovs-ctl.log. "${datadir}/scripts/ovs-ctl" "$@" ;; + "status") + # In case of the command 'status', we should return the exit status + # of ovs-ctl. It is also useful to document the o/p in ovs-ctl.log. + display=`"${datadir}/scripts/ovs-ctl" "$@" 2>&1` + rc=$? + if test -w "${logdir}/ovs-ctl.log"; then + echo "${display}" | tee -a "${logdir}/ovs-ctl.log" + else + echo "${display}" + fi + return ${rc} + ;; *) - # Tee ovs-ctl output to ovs-ctl.log and yield ovs-ctl's exit - # status. See (line wrapped) - # http://unix.stackexchange.com/questions/14270/\ - # get-exit-status-of-process-thats-piped-to-another/70675#70675 echo "`date -u`:$@" >> "${logdir}/ovs-ctl.log" - ( ( ( ( ("${datadir}/scripts/ovs-ctl" "$@" 2>&1 ; echo $? >&3) \ - | tee -a "${logdir}/ovs-ctl.log") >&4) 3>&1) | stdintoexitstatus) \ - 4>&1 + "${datadir}/scripts/ovs-ctl" "$@" 2>&1 | tee -a "${logdir}/ovs-ctl.log" ;; esac }