12345678910111213141516171819202122232425262728293031323334 |
- 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
|