]> arthur.barton.de Git - bup.git/blobdiff - cmd/import-rsnapshot-cmd.sh
vint: remove unnecessary condition
[bup.git] / cmd / import-rsnapshot-cmd.sh
index 760fd00ec048ef22f8c03c37801cdda59da5a580..91f711e19e10f817d83a38f1eb2fc990ebe23f36 100755 (executable)
@@ -1,11 +1,13 @@
 #!/bin/sh
 # Does an import of a rsnapshot archive.
 
+cmd_dir="$(cd "$(dirname "$0")" && pwd)" || exit $?
+
 usage() {
     echo "Usage: bup import-rsnapshot [-n]" \
         "<path to snapshot_root> [<backuptarget>]"
     echo "-n,--dry-run: just print what would be done"
-    exit -1
+    exit 1
 }
 
 DRY_RUN=
@@ -16,7 +18,7 @@ done
 
 bup()
 {
-    $DRY_RUN "${BUP_MAIN_EXE:=bup}" "$@"
+    $DRY_RUN "$cmd_dir/bup" "$@"
 }
 
 SNAPSHOT_ROOT=$1
@@ -30,31 +32,28 @@ if [ ! -e "$SNAPSHOT_ROOT/." ]; then
 fi
 
 
-ABSPATH=$(readlink -f "$SNAPSHOT_ROOT")
-
-for SNAPSHOT in "$ABSPATH/"*; do
-    if [ -e "$SNAPSHOT/." ]; then
-        for BRANCH_PATH in "$SNAPSHOT/"*; do
-            if [ -e "$BRANCH_PATH/." ]; then
-                # Get the snapshot's ctime
-                DATE=$(stat -c %Z "$BRANCH_PATH")
-                BRANCH=$(basename "$BRANCH_PATH")
-                TMPIDX=/tmp/$BRANCH
-
-                if [ -z "$TARGET" -o "$TARGET" = "$BRANCH" ]; then
-                    bup index -ux \
-                        -f "$TMPIDX" \
-                        "$BRANCH_PATH/"
-                    bup save \
-                        --strip \
-                        --date=$DATE \
-                        -f "$TMPIDX" \
-                        -n $BRANCH \
-                        "$BRANCH_PATH/"
-
-                    rm -f "$TMPIDX"
-                fi
-            fi
-        done
-    fi
+cd "$SNAPSHOT_ROOT" || exit 2
+
+for SNAPSHOT in *; do
+    [ -e "$SNAPSHOT/." ] || continue
+    echo "snapshot='$SNAPSHOT'" >&2
+    for BRANCH_PATH in "$SNAPSHOT/"*; do
+        BRANCH=$(basename "$BRANCH_PATH") || exit $?
+        [ -e "$BRANCH_PATH/." ] || continue
+        [ -z "$TARGET" -o "$TARGET" = "$BRANCH" ] || continue
+        
+        echo "snapshot='$SNAPSHOT' branch='$BRANCH'" >&2
+
+        # Get the snapshot's ctime
+        DATE=$(perl -e '@a=stat($ARGV[0]) or die "$ARGV[0]: $!";
+                        print $a[10];' "$BRANCH_PATH")
+       [ -n "$DATE" ] || exit 3
+
+        TMPIDX=bupindex.$BRANCH.tmp
+        bup index -ux -f "$TMPIDX" "$BRANCH_PATH/" || exit $?
+        bup save --strip --date="$DATE" \
+            -f "$TMPIDX" -n "$BRANCH" \
+            "$BRANCH_PATH/" || exit $?
+        rm "$TMPIDX" || exit $?
+    done
 done