From: Christian Heller Date: Sat, 4 Oct 2025 10:51:10 +0000 (+0200) Subject: Fix. X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/calendar?a=commitdiff_plain;h=e741ec6e003cf23d130aeabd0f5d27e280cce9af;p=config Fix. --- diff --git a/testing/scripts/pull_catgirl_logs.sh b/testing/scripts/pull_catgirl_logs.sh deleted file mode 100755 index e760b4c..0000000 --- a/testing/scripts/pull_catgirl_logs.sh +++ /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 index 0000000..11d8dcd --- /dev/null +++ b/trixie/scripts/pull_ircplom_logs.sh @@ -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