#!/bin/bash set -eu -o pipefail dev="$1" dir="$2" img="$3" cmd="$4" echo echo "unmount $dev" sudo umount "$dev" || true echo echo "unpack $img to $dev" pv "$img" | unxz | sudo dd of="$dev" started="$(date +%s)" echo echo "mount $dev on $dir" sudo mount "$dev" "$dir" echo echo "delete all files under $dir" files="$dir/files" case "$cmd" in find) find "$files" -delete ;; rm) rm -rf "$files" ;; rsync) tmp="$(mktemp -d)" rsync -r --del "$tmp/." "$files/." rmdir "$files" ;; *) echo "I don't know $cmd" 1>&2 ; exit 1 ;; esac echo echo "unmount $dev" sudo umount "$dev" ended="$(date +%s)" duration=$(("$ended" - "$started")) echo echo "seconds to delete: $duration" echo echo "done"