+++ /dev/null
-#!/bin/sh
-set -e
-cd $(dirname "$0")
-. lib/abort_if_command_unknown.sh
-. lib/abort_if_offline.sh
-. lib/constants_ssh.sh # PATH_USER_SSH
-. lib/expect_n_args.sh
-. lib/path_tmp_timestamped.sh
-. lib/prefixed_msg.sh
-. lib/trapp.sh
-
-prefixed_msg_init
-
-PATH_LOGS_LOCAL="${HOME}/chatlogs/catgirl"
-PATH_DECRYPTION_KEY_ENCRYPTED="${PATH_USER_SSH}/id_rsa"
-DIRNAME_ENCRYPTED_REMOTE='logs_encrypted'
-
-abort_if_offline
-abort_if_command_unknown age
-
-expect_n_args 1 1 '(server)' $@
-SERVER="$1"
-
-PATH_PROCESSING="$(path_tmp_timestamped pull_catgirl_logs)"
-RM_PROCESSING="rm -rf ${PATH_PROCESSING}"
-prefixed_msg "Setting up processing directory at ${PATH_PROCESSING} …"
-mkdir "${PATH_PROCESSING}"
-trapp "${RM_PROCESSING}"
-cd "${PATH_PROCESSING}"
-
-# Highly questionable acrobatics to work around "age" not supporting ssh-agent.
-PATH_DECRYPTION_KEY="${PATH_PROCESSING}/key"
-cp "${PATH_DECRYPTION_KEY_ENCRYPTED}" "${PATH_DECRYPTION_KEY}"
-# (NB: not using lib/retry_until here cuz ssh-keygen returns non-workable exit codes)
-prefixed_msg_no_nl 'Enter key decryption password: '
-stty -echo
-trapp "${RM_PROCESSING}; stty echo"
-read SSHPASS
-stty echo
-trapp "${RM_PROCESSING}"
-echo ''
-echo "\n\n" | ssh-keygen -q -P "${SSHPASS}" -p -f "${PATH_DECRYPTION_KEY}" > /dev/null
-
-prefixed_msg 'Collecting encrypted logs from server …'
-DIRNAME_TMP_ENCRYPTED="_${DIRNAME_ENCRYPTED_REMOTE}"
-NAME_ARCHIVE="aged_logs_$(date +'%Y-%m-%d_%H-%M-%S').tar"
-ssh -q "${SERVER}" "mv ${DIRNAME_ENCRYPTED_REMOTE} ${DIRNAME_TMP_ENCRYPTED} && tar cf ${NAME_ARCHIVE} ${DIRNAME_TMP_ENCRYPTED} && rm -rf ${DIRNAME_TMP_ENCRYPTED}"
-scp -q "${SERVER}:~/${NAME_ARCHIVE}" .
-ssh -q "${SERVER}" "rm ${NAME_ARCHIVE}"
-tar xf "${NAME_ARCHIVE}"
-rm "${NAME_ARCHIVE}"
-
-prefixed_msg "Decrypting logs to ${PATH_LOGS_LOCAL} …"
-find "${DIRNAME_TMP_ENCRYPTED}" | while read PATH_FOUND; do
- if [ ! -f "${PATH_FOUND}" ]; then
- continue
- fi
- TARGET_FILENAME=$(basename "${PATH_FOUND}" | cut -d'.' -f1-2)
- DIRNAME=$(dirname "${PATH_FOUND}")
- CHANNELNAME=$(basename "${DIRNAME}")
- SERVERNAME=$(basename $(dirname "${DIRNAME}"))
- TARGET_DIRNAME="${SERVERNAME}/${CHANNELNAME}"
- TARGET_DIRPATH="${PATH_LOGS_LOCAL}/${TARGET_DIRNAME}"
- prefixed_msg "Decrypting ${TARGET_DIRNAME}/${TARGET_FILENAME} …"
- mkdir -p "${TARGET_DIRPATH}"
- age --decrypt --identity "${PATH_DECRYPTION_KEY}" "${PATH_FOUND}" >> "${TARGET_DIRPATH}/${TARGET_FILENAME}"
-done
-
-prefixed_msg 'Done!'
-prefixed_msg_exit
--- /dev/null
+#!/bin/sh
+set -e
+ROOT=$(dirname "$0")
+cd "${ROOT}"
+. lib/abort_if_command_unknown.sh
+. lib/abort_if_offline.sh
+. lib/constants_ssh.sh # PATH_USER_SSH
+. lib/expect_n_args.sh
+. lib/prefixed_msg.sh
+. lib/trapp.sh
+
+prefixed_msg_init
+
+PATH_LOGS_LOCAL="${HOME}/chatlogs/ircplom"
+PATH_DECRYPTION_KEY_ENCRYPTED="${PATH_USER_SSH}/id_rsa"
+DIRNAME_ENCRYPTED_LOGS_REMOTE='logs_encrypted'
+
+# abort_if_offline
+abort_if_command_unknown age
+expect_n_args 1 1 SERVER "$@"
+SERVER="$1"
+
+PATH_TEMPDIR=$(mktemp -d)
+prefixed_msg "Set up temporary working directory at ${PATH_TEMPDIR} …"
+RM_TEMPDIR="rm -rvf ${PATH_TEMPDIR}"
+trapp "${RM_TEMPDIR}"
+cd "${PATH_TEMPDIR}"
+
+PATH_DECRYPTION_KEY="${PATH_TEMPDIR}/key"
+prefixed_msg 'WARNING: about to do some very INSECURE acrobatics to work around "age" not'
+prefixed_msg 'supporting ssh-agent – namely: create a de-facto decrypted variant of your'
+prefixed_msg 'private key in temporary working directory, for "age" to read to decrypt files.'
+cp "${PATH_DECRYPTION_KEY_ENCRYPTED}" "${PATH_DECRYPTION_KEY}"
+# (NB: not using lib/retry_until here cuz ssh-keygen returns non-workable exit codes)
+prefixed_msg_no_nl 'Enter key decryption password: '
+stty -echo
+trapp "${RM_TEMPDIR}; stty echo"
+read -r SSHPASS
+stty echo
+trapp "${RM_TEMPDIR}"
+echo ''
+echo "\n\n" | ssh-keygen -q -P "${SSHPASS}" -p -f "${PATH_DECRYPTION_KEY}" > /dev/null
+
+prefixed_msg 'Collecting encrypted logs from server …'
+DIRNAME_TEMP_ENCRYPTED_LOGS="_${DIRNAME_ENCRYPTED_LOGS_REMOTE}"
+NAME_ARCHIVE="aged_logs_$(date +'%Y-%m-%d_%H-%M-%S').tar"
+ssh -q "${SERVER}" "mv ${DIRNAME_ENCRYPTED_LOGS_REMOTE} ${DIRNAME_TEMP_ENCRYPTED_LOGS} && tar cf ${NAME_ARCHIVE} ${DIRNAME_TEMP_ENCRYPTED_LOGS} && rm -rf ${DIRNAME_TEMP_ENCRYPTED_LOGS}"
+scp -q "${SERVER}:~/${NAME_ARCHIVE}" .
+ssh -q "${SERVER}" "rm ${NAME_ARCHIVE}"
+tar xf "${NAME_ARCHIVE}"
+rm "${NAME_ARCHIVE}"
+
+prefixed_msg "Decrypting logs to ${PATH_LOGS_LOCAL} …"
+find "${DIRNAME_TEMP_ENCRYPTED_LOGS}" | while read -r PATH_FOUND; do
+ if [ ! -f "${PATH_FOUND}" ]; then
+ continue
+ fi
+ TARGET_FILENAME=$(basename "${PATH_FOUND}" | cut -d'.' -f1-2)
+ DIRNAME_FOUND=$(dirname "${PATH_FOUND}")
+ CHATNAME=$(basename "${DIRNAME_FOUND}")
+ DIRNAME_DIRNAME_FOUND=$(dirname "${DIRNAME_FOUND}")
+ SERVERNAME=$(basename "${DIRNAME_DIRNAME_FOUND}")
+ TARGET_DIRNAME="${SERVERNAME}/${CHATNAME}"
+ TARGET_DIRPATH="${PATH_LOGS_LOCAL}/${TARGET_DIRNAME}"
+ prefixed_msg "Decrypting ${TARGET_DIRNAME}/${TARGET_FILENAME} …"
+ mkdir -p "${TARGET_DIRPATH}"
+ age --decrypt --identity "${PATH_DECRYPTION_KEY}" "${PATH_FOUND}" >> "${TARGET_DIRPATH}/${TARGET_FILENAME}"
+done
+
+prefixed_msg 'Done! (DO ensure that working directory is gone, i.e. that decrypted-key file is …)'
+prefixed_msg_exit