home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 4 Oct 2025 10:51:10 +0000 (12:51 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 4 Oct 2025 10:51:10 +0000 (12:51 +0200)
testing/scripts/pull_catgirl_logs.sh [deleted file]
trixie/scripts/pull_ircplom_logs.sh [new file with mode: 0755]

diff --git a/testing/scripts/pull_catgirl_logs.sh b/testing/scripts/pull_catgirl_logs.sh
deleted file mode 100755 (executable)
index e760b4c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/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
diff --git a/trixie/scripts/pull_ircplom_logs.sh b/trixie/scripts/pull_ircplom_logs.sh
new file mode 100755 (executable)
index 0000000..11d8dcd
--- /dev/null
@@ -0,0 +1,71 @@
+#!/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