2 # Does an import of a rsnapshot archive.
4 cmd_dir="$(cd "$(dirname "$0")" && pwd)" || exit $?
7 echo "Usage: bup import-rsnapshot [-n]" \
8 "<path to snapshot_root> [<backuptarget>]"
9 echo "-n,--dry-run: just print what would be done"
14 while [ "$1" = "-n" -o "$1" = "--dry-run" ]; do
21 $DRY_RUN "$cmd_dir/bup" "$@"
27 [ -n "$SNAPSHOT_ROOT" -a "$#" -le 2 ] || usage
29 if [ ! -e "$SNAPSHOT_ROOT/." ]; then
30 echo "'$SNAPSHOT_ROOT' isn't a directory!"
35 cd "$SNAPSHOT_ROOT" || exit 2
38 [ -e "$SNAPSHOT/." ] || continue
39 echo "snapshot='$SNAPSHOT'" >&2
40 for BRANCH_PATH in "$SNAPSHOT/"*; do
41 BRANCH=$(basename "$BRANCH_PATH") || exit $?
42 [ -e "$BRANCH_PATH/." ] || continue
43 [ -z "$TARGET" -o "$TARGET" = "$BRANCH" ] || continue
45 echo "snapshot='$SNAPSHOT' branch='$BRANCH'" >&2
47 # Get the snapshot's ctime
48 DATE=$(perl -e '@a=stat($ARGV[0]) or die "$ARGV[0]: $!";
49 print $a[10];' "$BRANCH_PATH")
50 [ -n "$DATE" ] || exit 3
52 TMPIDX=bupindex.$BRANCH.tmp
53 bup index -ux -f "$TMPIDX" "$BRANCH_PATH/" || exit $?
54 bup save --strip --date="$DATE" \
55 -f "$TMPIDX" -n "$BRANCH" \
56 "$BRANCH_PATH/" || exit $?
57 rm "$TMPIDX" || exit $?