⬢ DragonFlyBSD Kernel Audit
DF-5765 / xfer.sh
← back to finding ↓ download raw
#!/bin/sh
# host-side helper: transfer a directory tree to the guest via vm.sh
# run_root + base64 chunks (no scp port in vm.sh).
# usage: ./xfer.sh <local-dir> <remote-dir>
set -e
LOCAL="$1"; REMOTE="$2"
[ -n "$LOCAL" ] && [ -n "$REMOTE" ] || { echo "usage: $0 <local-dir> <remote-dir>"; exit 1; }

VM=./dfbsd-qemu/vm.sh
TAR=$(mktemp /tmp/opencode/pack.XXXXXX.tar)
B64=$(mktemp /tmp/opencode/pack.XXXXXX.b64)

tar -C "$LOCAL" -cf "$TAR" .
gzip -9 -c "$TAR" | base64 -w 900 > "$B64"

$VM run_root "rm -rf '$REMOTE' && mkdir -p '$REMOTE'"
n=0
while IFS= read -r line; do
	n=$((n+1))
	$VM run_root "printf '%s' '$line' >> '$REMOTE/pack.b64'"
done < "$B64"
echo "transferred $n chunks"
$VM run_root "cd '$REMOTE' && b64decode -r pack.b64 | gunzip | tar xf - && rm pack.b64 && ls -la"
rm -f "$TAR" "$B64"