2 # Does an import of a rsnapshot archive.
5 echo "Usage: bup import-rsnapshot [-n]" \
6 "<path to snapshot_root> [<backuptarget>]"
7 echo "-n,--dry-run: just print what would be done"
12 while [ "$1" = "-n" -o "$1" = "--dry-run" ]; do
19 $DRY_RUN "${BUP_MAIN_EXE:=bup}" "$@"
25 [ -n "$SNAPSHOT_ROOT" -a "$#" -le 2 ] || usage
27 if [ ! -e "$SNAPSHOT_ROOT/." ]; then
28 echo "'$SNAPSHOT_ROOT' isn't a directory!"
33 cd "$SNAPSHOT_ROOT" || exit 2
36 [ -e "$SNAPSHOT/." ] || continue
37 echo "snapshot='$SNAPSHOT'" >&2
38 for BRANCH_PATH in "$SNAPSHOT/"*; do
39 BRANCH=$(basename "$BRANCH_PATH") || exit $?
40 [ -e "$BRANCH_PATH/." ] || continue
41 [ -z "$TARGET" -o "$TARGET" = "$BRANCH" ] || continue
43 echo "snapshot='$SNAPSHOT' branch='$BRANCH'" >&2
45 # Get the snapshot's ctime
46 DATE=$(perl -e '@a=stat($ARGV[0]) or die "$ARGV[0]: $!";
47 print $a[10];' "$BRANCH_PATH")
48 [ -n "$DATE" ] || exit 3
50 TMPIDX=bupindex.$BRANCH.tmp
51 bup index -ux -f "$TMPIDX" "$BRANCH_PATH/" || exit $?
52 bup save --strip --date="$DATE" \
53 -f "$TMPIDX" -n "$BRANCH" \
54 "$BRANCH_PATH/" || exit $?
55 rm "$TMPIDX" || exit $?