home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 22 Apr 2025 01:19:06 +0000 (03:19 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 22 Apr 2025 01:19:06 +0000 (03:19 +0200)
bookworm/copy/catgirl/home/plom/.config/catgirl/libera
testing/scripts/_setup_secrets_user.sh
testing/scripts/lib/INSTALLER_VERSION [new symlink]
testing/scripts/lib/constants_installer
testing/scripts/lib/trapp [new file with mode: 0644]
testing/scripts/make_writable_installer.sh
testing/scripts/pull_catgirl_logs.sh
testing/scripts/update_preseed.sh

index f27baa7b4f3fdb809c8865e49024445ee021fdc1..45a1c6ae881acd2814fbc0f21beacbd4ddce53b9 100644 (file)
@@ -1,4 +1,5 @@
 host = irc.libera.chat
 join = #plomtest
 sasl-plain = plomtest:REPLACE_WITH_IRC_PASSWORD
+nick = plomtest
 log
index a485ca005792112d98324b79ace35df02c222f82..8d3f9bd63dae64a5e443e6c58dab98e26cc038da 100644 (file)
@@ -11,6 +11,7 @@ cd $(dirname "$0")
 . lib/constants_borg  # NAME_BORGAPP
 . lib/mount_secrets  # mount_secrets, copy_and_unmount_secrets
 . lib/retry_until
+. lib/trapp
 
 PATH_REPOS="${HOME}/repos"
 REPOS_SITE_DOMAIN=plomlompom.com
@@ -30,10 +31,10 @@ echo "\nSetting up ~/.ssh"
 cp -a "${PATH_SECRETS_SSH}" "${PATH_USER_SSH}"
 eval $(ssh-agent)
 stty -echo
-trap 'stty echo' EXIT INT TERM
+trapp stty echo
 retry_until 1 'echo ""' 'ssh-add -q' 'echo "Aborting due to ssh-add error"'
 stty echo
-trap '' EXIT INT TERM
+trapp
 
 echo "\n\nSetting up ~/repos"
 REPOS_SITE_LOGIN="${USERNAME}@${REPOS_SITE_DOMAIN}"
diff --git a/testing/scripts/lib/INSTALLER_VERSION b/testing/scripts/lib/INSTALLER_VERSION
new file mode 120000 (symlink)
index 0000000..74e85c5
--- /dev/null
@@ -0,0 +1 @@
+../../../bookworm/scripts/lib/INSTALLER_VERSION
\ No newline at end of file
index 92e60df9b95a8af5be5e1248133bcd98522ff940..76e1589c7d720699bef6925a1299511fccc96f48 100644 (file)
@@ -1,2 +1,2 @@
 FILENAME_PRESEED_CFG=preseed.cfg
-PATH_PRESEED_CFG="../${FILENAME_PRESEED_CFG}"
+PATH_PRESEED_CFG=$(realpath "../${FILENAME_PRESEED_CFG}")
diff --git a/testing/scripts/lib/trapp b/testing/scripts/lib/trapp
new file mode 100644 (file)
index 0000000..fb550f7
--- /dev/null
@@ -0,0 +1,8 @@
+trapp() {
+    if [ -z "$@" ]; then
+        _NEW_COMMAND='-'
+    else 
+        _NEW_COMMAND="$@"
+    fi 
+    trap "${_NEW_COMMAND}" EXIT TERM HUP INT
+}
index 39e1396502389030c7e9218817e0552ee2a4b7ee..59b98053e815b9adbe9a71d8c2ba7806619fea98 100755 (executable)
@@ -10,6 +10,8 @@ cd $(dirname "$0")
 . lib/constants_installer  # FILENAME_PRESEED_CFG, PATH_PRESEED_CFG
 . lib/expect_n_args
 . lib/get_mountable_device_path
+. lib/path_tmp_timestamped
+. lib/trapp
 
 expect_n_args 1 1 'DEVICE (e.g. "sdb")' $@
 abort_if_not_user root
@@ -18,46 +20,51 @@ abort_if_command_unknown mkfs.vfat
 abort_if_command_unknown parted 
 abort_if_command_unknown rsync
 abort_if_command_unknown wget 
-PATH_STICK="$(get_mountable_device_path $1)"
-
+PATH_DEV="$(get_mountable_device_path $1)"
 PATH_MNT_ISO=/mnt/iso
+
+PATH_PROCESSING="$(path_tmp_timestamped make_writable_installer)"
+RM_PROCESSING="rm -rf ${PATH_PROCESSING}"
+echo "Setting up processing directory at ${PATH_PROCESSING} …"
+mkdir "${PATH_PROCESSING}"
+trapp "${RM_PROCESSING}"
+cd "${PATH_PROCESSING}"
+
 FILENAME_ISO="debian-${INSTALLER_VERSION}-amd64-netinst.iso"
-echo "Retrieving ${FILENAME_ISO}."
+echo "Retrieving ${FILENAME_ISO} …"
 URL_ISO="https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/${FILENAME_ISO}"
-PATH_ISO="/tmp/${FILENAME_ISO}"
-wget --output-document "${PATH_ISO}" "${URL_ISO}"
+wget --quiet --output-document "${FILENAME_ISO}" "${URL_ISO}"
 
-echo "Preparing partition/filesystem on ${PATH_STICK}."
-parted --script "${PATH_STICK}" mklabel msdos
-parted --script "${PATH_STICK}" mkpart primary fat32 0% 100%
-PATH_PARTITION="${PATH_STICK}1"
-mkfs.vfat "${PATH_PARTITION}" 
+echo "Preparing partition/filesystem on ${PATH_DEV} …"
+parted --script "${PATH_DEV}" mklabel msdos
+parted --script "${PATH_DEV}" mkpart primary fat32 0% 100%
+PATH_PARTITION="${PATH_DEV}1"
+mkfs.vfat "${PATH_PARTITION}" > /dev/null 
 
-echo "Mounting ${PATH_MNT_ISO} and ${PATH_MNT_STICK}."
-mkdir -p "${PATH_MNT_ISO}" "${PATH_MNT_STICK}"
-mount "${PATH_PARTITION}" "${PATH_MNT_STICK}"
-mount -o loop "${PATH_ISO}" "${PATH_MNT_ISO}"
-do_umounts() {
+PATH_MNT_DEV='/mnt/'$(basename "${PATH_PARTITION}")
+echo -n "Mounting ${PATH_MNT_ISO} and ${PATH_MNT_DEV} …"
+mkdir -p "${PATH_MNT_ISO}" "${PATH_MNT_DEV}"
+do_umount() {
+    echo "Unmounting $1 …"
     set +e
-    echo "Unmounting ${PATH_MNT_ISO}"
-    umount "${PATH_MNT_ISO}"
-    echo "Unmounting ${PATH_MNT_STICK}"
-    umount "${PATH_MNT_STICK}"
+    umount "$1"
     set -e
 }
-trap do_umounts EXIT INT TERM
+mount "${PATH_PARTITION}" "${PATH_MNT_DEV}"
+trapp "${RM_PROCESSING}; do_umount ${PATH_MNT_DEV}"
+mount -o loop "${FILENAME_ISO}" "${PATH_MNT_ISO}" 2>&1 | sed 's|mount: /mnt/iso: WARNING: source write-protected, mounted read-only.||'
+trapp "${RM_PROCESSING}; do_umount ${PATH_MNT_DEV}; do_umount ${PATH_MNT_ISO}"
 
-echo "Copying contents of ${PATH_MNT_ISO} to ${PATH_MNT_STICK}/."
-PATH_RSYNC_ERRORS=/tmp/rsync_errors
+echo "Copying contents of ${PATH_MNT_ISO} to ${PATH_MNT_DEV}/ …"
+FILENAME_RSYNC_ERRORS="rsync_errors"
 set +e
-rsync -a "${PATH_MNT_ISO}/" "${PATH_MNT_STICK}/" 2> "${PATH_RSYNC_ERRORS}"
+rsync -a "${PATH_MNT_ISO}/" "${PATH_MNT_DEV}/" 2> "${FILENAME_RSYNC_ERRORS}"
 RESULT=$?
 set -e
 if [ "${RESULT}" != "0" ]; then
-    echo 'rsync errors:'
-    cat "${PATH_RSYNC_ERRORS}"
-    echo 'rsync encountered errors, see above – continue? (Y/N)'
-    rm "${PATH_RSYNC_ERRORS}"
+    echo 'RSYNC ERRORS:'
+    cat "${FILENAME_RSYNC_ERRORS}"
+    echo '\nrsync encountered errors, see above – continue? (Y/N)'
     read ANSWER
     FIRST_CHAR=$(echo "${ANSWER}" | cut -c1)
     if ! [ "${FIRST_CHAR}" = 'y' -o "${FIRST_CHAR}" = 'Y' ]; then
@@ -65,9 +72,8 @@ if [ "${RESULT}" != "0" ]; then
     fi
 fi
 
-echo "Installing preseed file."
-cp "${PATH_PRESEED_CFG}" "${PATH_MNT_STICK}/"
-sed --in-place 's/ --- / --- preseed\/file=\/cdrom\/'"${FILENAME_PRESEED_CFG}"' /g' "${PATH_MNT_STICK}/boot/grub/grub.cfg"
+echo "Installing preseed file …"
+cp "${PATH_PRESEED_CFG}" "${PATH_MNT_DEV}/"
+sed --in-place 's/ --- / --- preseed\/file=\/cdrom\/'"${FILENAME_PRESEED_CFG}"' /g' "${PATH_MNT_DEV}/boot/grub/grub.cfg"
 
-rm "${PATH_ISO}"
 echo "Done!"
index 69b0f20ef3858fd27cfa5d0546d1cb1cc5197ccd..c13676e48edc0f75ee38b11289579e838690a767 100755 (executable)
@@ -5,6 +5,7 @@ cd $(dirname "$0")
 . lib/abort_if_offline
 . lib/expect_n_args
 . lib/path_tmp_timestamped
+. lib/trapp
 
 PATH_LOGS_LOCAL="${HOME}/chatlogs/catgirl"
 PATH_DECRYPTION_KEY_ENCRYPTED="${HOME}/.ssh/id_rsa"
@@ -17,11 +18,10 @@ expect_n_args 1 1 '(server)' $@
 SERVER="$1"
 
 PATH_PROCESSING="$(path_tmp_timestamped pull_catgirl_logs)"
-ON_TRAP_RM_PROCESSING="rm -rf ${PATH_PROCESSING}"
-ON_TRAP="${ON_TRAP_RM_PROCESSING}"
+RM_PROCESSING="rm -rf ${PATH_PROCESSING}"
 echo "Setting up processing directory at ${PATH_PROCESSING} …"
 mkdir "${PATH_PROCESSING}"
-trap "${ON_TRAP}" EXIT INT TERM
+trapp "${RM_PROCESSING}"
 cd "${PATH_PROCESSING}"
 
 # Highly questionable acrobatics to work around "age" not supporting ssh-agent.
@@ -30,12 +30,10 @@ cp "${PATH_DECRYPTION_KEY_ENCRYPTED}" "${PATH_DECRYPTION_KEY}"
 # (NB: not using lib/retry_until here cuz ssh-keygen returns non-workable exit codes)
 echo -n 'Enter key decryption password: '
 stty -echo
-ON_TRAP="${ON_TRAP}; stty echo"
-trap "${ON_TRAP}" EXIT INT TERM
+trapp "${RM_PROCESSING}; stty echo"
 read SSHPASS
 stty echo
-ON_TRAP="${ON_TRAP_RM_PROCESSING}"
-trap "${ON_TRAP}" EXIT INT TERM
+trapp "${RM_PROCESSING}"
 echo ''
 echo "\n\n" | ssh-keygen -q -P "${SSHPASS}" -p -f "${PATH_DECRYPTION_KEY}" > /dev/null
 
index 0def2f6cbc2d95b5a560d3422136fa795b8e9307..bf3da3a52ad7e781b44859d5354d82020b9b9ebc 100755 (executable)
@@ -5,6 +5,7 @@ cd $(dirname "$0")
 . lib/constants_installer  # FILENAME_PRESEED_CFG, PATH_PRESEED_CFG
 . lib/expect_n_args
 . lib/get_mountable_device_path
+. lib/trapp
 
 expect_n_args 4 4 'DEVICE (e.g. "sdb1") ROOT_PASSWORD WIFI_ESSID WIFI_PASSWORD' $@
 DEVICE_NAME="$1"
@@ -17,7 +18,7 @@ PATH_DEVICE="$(get_mountable_device_path ${DEVICE_NAME})"
 PATH_MOUNTED="/media/$1"
 echo "Mounting ${PATH_DEVICE} …"
 pmount "${DEVICE_NAME}"
-trap "echo 'Unmounting '${PATH_DEVICE}; pumount ${DEVICE_NAME}" EXIT INT TERM
+trapp "echo 'Unmounting '${PATH_DEVICE}; pumount ${DEVICE_NAME}"
 echo "Copying ${PATH_PRESEED_CFG} …"
 PATH_MOUNTED_PRESEED_CFG="${PATH_MOUNTED}/${FILENAME_PRESEED_CFG}"
 cp "${PATH_PRESEED_CFG}" "${PATH_MOUNTED_PRESEED_CFG}"