#!/bin/sh
+export PATH=$rundir:/bin:/usr/bin
+
if [ $# != 1 ]; then
- echo >&2 "Usage: $0 <target-directory>"
- echo >&2 "Example: $0 /"
+ echo >&2 "Usage: $0 <source-directory> <target-directory>"
+ echo >&2 "Example: $0 / /"
exit 1
fi
-tmpdir=/tmp/restore-$(date +%Y%m%d%H%M%S)
-
-export PATH=$tmpdir:/bin:/usr/bin
+device=$(mount | grep "on $mountdir " | awk '{print$1}')
-# Get the device with the CD in it here
-device=/dev/hdc
+cp $mountdir/backups.db $mountdir/backup-status.txt $rundir
+dbfile=$rundir/backups.db
for date in $(cat $dbfile | list-dates.sh); do
- eject $device
- echo >&2 "Please insert backup disk: $date"
- echo >&2 "Then press any key"
- read bogus
- # Mount the media
- # rsync-cmd.sh won't work here in its current encarnation
- cat $dbfile | files-from-date.sh | rsync-cmd.sh $1
+ success=false
+ while ! $success; do
+ eject $device
+ echo >&2 "Please insert backup disk: $date"
+ read bogus
+
+ # Mount the media
+ mount -t ext2 $device $mountdir
+ if [ "" != "$(grep -l $date $mountdir/backup-status.txt)" ]; then
+ success=true
+ else
+ echo >&2 "This doesn't seem to be the right disk."
+ fi
+ done
+
+ rsyncopts="-l -p -t -g -o -0 --files-from=- --stats --progress "
+ cat $dbfile | files-from-date.sh | rsync $rsyncopts $1 $2
done