home · contact · privacy
Fix broken borgplom. master
authorChristian Heller <c.heller@plomlompom.de>
Tue, 11 Mar 2025 17:28:39 +0000 (18:28 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 11 Mar 2025 17:28:39 +0000 (18:28 +0100)
testing/home/desktop/.local/bin/borgplom

index dcf7afe2bc917cff5af3b108b0fcf9fe883a7468..a09db585ab369478a3a809b616ff14a93d2a27c2 100755 (executable)
@@ -1,19 +1,32 @@
 #!/bin/sh
+set -e
+
 PATH_BORGKEYS="${HOME}/.config/borg/keys"
-PATH_ORG="${HOME}/org"
+NAME_REPO=borg
+NAME_ARCHIVE=orgdir
+
+if [ -z "${BORG_PASSPHRASE}" ]; then
+    stty -echo
+    printf "Borg passphrase: "
+    read passphrase
+    stty echo
+    printf "\n"
+    export BORG_PASSPHRASE="${passphrase}"
+fi
 
 if [ "$1" = "orgpull" ]; then
     ls -1 "${PATH_BORGKEYS}/" | while read FILENAME; do
-        SERVER_NAME=$(echo "${FILENAME}" | sed 's/.*@//')
-        if ping -c1 -W2 "${SERVER_NAME}" > /dev/null 2>&1; then
-           break
-       else
-            echo "Cannot reach ${SERVER_NAME}, skipping."
+        NAME_SERVER=$(echo "${FILENAME}" | sed 's/.*@//')
+        if ! ping -c1 -W2 "${NAME_SERVER}" > /dev/null 2>&1; then
+            echo "Cannot reach ${NAME_SERVER}, skipping."
+           continue
         fi
+        REPO="${NAME_SERVER}:${NAME_REPO}"
+       ARCHIVES=$(borg list "${REPO}")  # separate step so we may fail early on bad passphrase
+        ARCHIVE=$(echo "${ARCHIVES}" | grep "${NAME_ARCHIVE}" | tail -1 | cut -f1 -d' ')
+        echo "Pulling archive: ${ARCHIVE}"
+        cd /
+        borg extract --verbose "${REPO}::${ARCHIVE}"
+       break
     done
-    REPO="${SERVER_NAME}:borg"
-    ARCHIVE=$(borg list "${REPO}" | grep "${PATH_ORG}/" | tail -1 | cut -f1 -d' ')
-    echo "Pulling archive: ${ARCHIVE}"
-    cd /
-    borg extract --verbose "${REPO}::${ARCHIVE}"
 fi