]> arthur.barton.de Git - bup.git/blob - cmd/import-rsnapshot-cmd.sh
Merge branches 'gf/ls', 'gf/tag', 'zz/import-rsnapshot' and 'bl/selfindex'
[bup.git] / cmd / import-rsnapshot-cmd.sh
1 #!/bin/sh
2 # bup-import-rsnapshot.sh
3
4 # Does an import of a rsnapshot archive.
5
6 usage() {
7     echo "Usage: bup import-rsnapshot [-n]" \
8         "<path to snapshot_root> [<backuptarget>]"
9     echo "-n,--dry-rung: don't do anything just print out what would be done"
10     exit -1
11 }
12
13 if [ "$1" = "-n" -o "$1" = "--dry-run" ]; then
14     bup()
15     {
16         echo bup "$@" >&2
17     }
18     shift 1
19 elif [ -n "$BUP_MAIN_EXE" ]; then
20     bup()
21     {
22         "$BUP_MAIN_EXE" "$@"
23     }
24 else
25     bup()
26     {
27         bup "$@"
28     }
29 fi
30
31 [ "$#" -eq 1 ] || [ "$#" -eq 2 ] || usage
32
33 if [ ! -e "$1/." ]; then
34     echo "$1 isn't a directory!"
35     exit -1
36 fi
37
38 TARGET=
39 [ "$#" -eq 2 ] && TARGET="$2"
40
41
42 ABSPATH=`readlink -f "$1"`
43
44 for SNAPSHOT in "$ABSPATH/"*; do
45     if [ -e "$SNAPSHOT/." ]; then
46         for BRANCH_PATH in "$SNAPSHOT/"*; do
47             if [ -e "$BRANCH_PATH/." ]; then
48                 # Get the snapshot's ctime
49                 DATE=`stat -c %Z "$BRANCH_PATH"`
50                 BRANCH=`basename "$BRANCH_PATH"`
51                 TMPIDX="/tmp/$BRANCH"
52
53                 if [ "$TARGET" == "" ] || [ "$TARGET" == "$BRANCH" ]; then
54                     bup index -ux \
55                         -f $TMPIDX \
56                         $BRANCH_PATH/
57                     bup save \
58                         --strip \
59                         --date=$DATE \
60                         -f $TMPIDX \
61                         -n $BRANCH \
62                         $BRANCH_PATH/
63
64                     if [ -e "$TMPIDX" ]; then
65                         rm "$TMPIDX"
66                     fi
67                 fi
68             fi
69         done
70     fi
71 done
72