From: Christian Heller Date: Tue, 11 Mar 2025 22:21:36 +0000 (+0100) Subject: Fix borgplom script; X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/booking/%7B%7Bdb.prefix%7D%7D/%7B%7Bprefix%7D%7D/calendar?a=commitdiff_plain;h=5bd6bd8a625011979b428d9bc94c06353c4c9247;p=config Fix borgplom script; --- diff --git a/testing/home/desktop/.local/bin/borgplom b/testing/home/desktop/.local/bin/borgplom index 277fbb3..4010829 100755 --- a/testing/home/desktop/.local/bin/borgplom +++ b/testing/home/desktop/.local/bin/borgplom @@ -6,39 +6,44 @@ NAME_REPO=borg NAME_ARCHIVE=orgdir if [ "$1" = "orgpull" ]; then - ls -1 "${PATH_BORGKEYS}/" | while read FILENAME; do + PATH_PIPE="/tmp/pipe_$(date +'%s')" + mkfifo "${PATH_PIPE}" + ls -1 "${PATH_BORGKEYS}/" > "${PATH_PIPE}" & + while read FILENAME; do NAME_SERVER=$(echo "${FILENAME}" | sed 's/.*@//') - if ! ping -c1 -W2 "${NAME_SERVER}" > /dev/null 2>&1; then + if ping -c1 -W2 "${NAME_SERVER}" > /dev/null 2>&1; then + break + else echo "Cannot reach ${NAME_SERVER}, skipping." - continue fi - REPO="${NAME_SERVER}:${NAME_REPO}" - while true; do - if [ -z "${BORG_PASSPHRASE}" ]; then - stty -echo - printf "Borg passphrase: " - read passphrase - stty echo - printf "\n" - export BORG_PASSPHRASE="${passphrase}" - fi - set +e - ARCHIVES=$(borg list "${REPO}") # separate step so we may fail early on bad passphrase - RESULT=$? - set -e - if [ "${RESULT}" = "0" ]; then - break - elif [ "${RESULT}" != "2" ]; then - echo "Aborting due to unexpected ${NAME_BORGAPP} error." - exit 1 - else - export BORG_PASSPHRASE="" - fi - done - ARCHIVE=$(echo "${ARCHIVES}" | grep "${NAME_ARCHIVE}" | tail -1 | cut -f1 -d' ') - echo "Pulling archive: ${ARCHIVE}" - cd / - borg extract --verbose "${REPO}::${ARCHIVE}" - break + done < "${PATH_PIPE}" + rm "${PATH_PIPE}" + REPO="${NAME_SERVER}:${NAME_REPO}" + while true; do + if [ -z "${BORG_PASSPHRASE}" ]; then + stty -echo + printf "Borg passphrase: " + read passphrase + stty echo + printf "\n" + export BORG_PASSPHRASE="${passphrase}" + fi + set +e + ARCHIVES=$(borg list "${REPO}") # separate step so we may fail early on bad passphrase + RESULT=$? + set -e + if [ "${RESULT}" = "0" ]; then + break + elif [ "${RESULT}" != "2" ]; then + echo "Aborting due to unexpected ${NAME_BORGAPP} error." + exit 1 + else + export BORG_PASSPHRASE="" + fi done + ARCHIVE=$(echo "${ARCHIVES}" | grep "${NAME_ARCHIVE}" | tail -1 | cut -f1 -d' ') + echo "Pulling archive: ${ARCHIVE}" + cd / + borg extract --verbose "${REPO}::${ARCHIVE}" + break fi