echo Starting Restorecopy >&2
read args
read paths
echo Arguments: $args >&2
echo Paths: $paths >&2
if [ -f "$args" ] ; then
  echo "Performing restore from backup file $args" >&2
  TARGET="$args"
  echo "Copying $TARGET to STDOUT" >&2
  /usr/lib/qubes/tar2qfile $TARGET $paths
else
  echo "Checking if arguments is matching a command" >&2
  COMMAND=`echo $args | cut -d ' ' -f 1`
  TYPE=`type -t $COMMAND`
  if [ "$TYPE" == "file" ] ; then
    tmpdir=`mktemp -d`
    mkfifo $tmpdir/backup-data
    echo "Redirecting $args to STDOUT" >&2
    # Parsing args to handle quotes correctly
    # Dangerous method if args are uncontrolled
    eval "set -- $args"
    # Use named pipe to pass original stdin to tar2file
    $@ > $tmpdir/backup-data < /dev/null &
    retcode=$?
    /usr/lib/qubes/tar2qfile $tmpdir/backup-data $paths
    wait
    rm $tmpdir/backup-data
    rmdir $tmpdir
    exit $retcode
  else
    echo "Invalid command $COMMAND" >&2
    exit 2
  fi
fi