From c177ae2c7a6160db376d3eabaf20ac9264ce34d5 Mon Sep 17 00:00:00 2001 From: Rusty Bird Date: Sat, 13 Feb 2016 15:21:39 +0000 Subject: [PATCH] qvm-copy-to-vm: Fix running with multiple file arguments --- file-copy-vm/qvm-copy-to-vm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/file-copy-vm/qvm-copy-to-vm b/file-copy-vm/qvm-copy-to-vm index 2091767..eee5e25 100644 --- a/file-copy-vm/qvm-copy-to-vm +++ b/file-copy-vm/qvm-copy-to-vm @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash +set -e -o pipefail # # The Qubes OS Project, http://www.qubes-os.org # @@ -28,4 +29,11 @@ fi VM="$1" shift -exec /usr/bin/qvm-run --pass-io --localcmd "/usr/lib/qubes/qfile-dom0-agent $@" "$VM" "QUBESRPC qubes.Filecopy dom0" +TMPDIR=`mktemp -d` +trap 'rm -rf -- "$TMPDIR"' EXIT +RESPONSE=$TMPDIR/response +mkfifo -- "$RESPONSE" + +# can't use $@ with --localcmd, and $* would fail on whitespace +/usr/lib/qubes/qfile-dom0-agent "$@" <"$RESPONSE" | +qvm-run --pass-io "$VM" "QUBESRPC qubes.Filecopy dom0" >"$RESPONSE"