fi
 }
 
+_run_borg_with_passphrase() {
+    while true; do
+        if [ -z "${BORG_PASSPHRASE}" ]; then
+            printf 'Passphrase:'
+            export BORG_PASSPHRASE="$(get_passphrase)"
+            echo ''
+        fi
+        set +e
+        _OUTPUT="$(borg $@)"
+        _RESULT=$?
+        set -e
+        if [ "${_RESULT}" = "0" ]; then
+            break
+        elif [ "${_RESULT}" != "2" ]; then
+            error_exit "unexpected ${NAME_BORGAPP} error."
+        fi
+        export BORG_PASSPHRASE=
+    done
+}
+
 _id_from_file() { head -1 "$1" | cut -d' ' -f2; }
 
 USAGE_ARGS_backup_keys='PATH'
 }
 
 USAGE_ARGS_claim='PATH'
-USAGE_DESC_claim="register file of PATH as key to repo at \"$(location_from_servername SERVERNAME)\", with SERVERNAME the filename portion of PATH"
+USAGE_DESC_claim="register file of PATH as key to repo at \"$(location_from_servername SERVER_NAME)\", with SERVER_NAME the filename portion of PATH"
 CMDFNC_claim() {
     _check_args_n 1 1 "$@"
     _PATH_SOURCE="$1"
 }
 
 USAGE_ARGS_info='SERVER_NAME [ARCHIVE]'
-USAGE_DESC_info='run "borg info" against repo in server of SERVER_NAME, optionally only against ARCHIVE; if latter not provided, instead list most recent archives of repo'
+USAGE_DESC_info="run 'borg info' against repo at \"$(location_from_servername SERVER_NAME)\"in server of SERVER_NAME, optionally only against ARCHIVE; if latter not provided, instead list most recent archives of repo"
 CMDFNC_info() {
     _check_args_n 1 2 "$@"
     _TARGET_REPO="$(location_from_servername ${1})"
         borg info "${_TARGET_REPO}::$2"
         exit 0
     fi
-    while true; do
-        if [ -z "${BORG_PASSPHRASE}" ]; then
-            printf 'Passphrase:'
-            export BORG_PASSPHRASE="$(get_passphrase)"
-            echo ''
-        fi
-        set +e
-        _INFO=$(borg info "${_TARGET_REPO}")
-        _RESULT=$?
-        set -e
-        if [ "${_RESULT}" = "0" ]; then
-            break
-        elif [ "${_RESULT}" != "2" ]; then
-            error_exit "unexpected ${NAME_BORGAPP} error."
-        fi
-        export BORG_PASSPHRASE=
-    done
-    echo "${_INFO}"
-    echo "Most recent archives:"
+    _run_borg_with_passphrase info "${_TARGET_REPO}"
+    echo "${_OUTPUT}\n\nMost recent archives:"
     borg list "${_TARGET_REPO}" | tail -5
 }
 
 
     # determine passphrase and archive
     echo "Checking out ${_REPO} …"
-    while true; do
-        if [ -z "${BORG_PASSPHRASE}" ]; then
-            printf 'Passphrase:'
-            export BORG_PASSPHRASE="$(get_passphrase)"
-            echo ''
-        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
-            error_exit "unexpected ${NAME_BORGAPP} error."
-        fi
-        export BORG_PASSPHRASE=
-    done
-    _ARCHIVE=$(echo "${_ARCHIVES}" | grep "${_NAME_ARCHIVE}" | tail -1 | cut -f1 -d' ')
+    _run_borg_with_passphrase list "${_REPO}"
+    _ARCHIVE=$(echo "${_OUTPUT}" | grep "${_NAME_ARCHIVE}" | tail -1 | cut -f1 -d' ')
 
     # pull archive
     echo "Pulling archive: ${_ARCHIVE}"