From 3f5c7ab99e216883a0c58dba4b9350ecd510dd9f Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sat, 26 Apr 2025 00:08:07 +0200 Subject: [PATCH] Fix. --- bookworm/scripts/lib/apt_get_edited | 70 +++++++++++++++++++++++++++ bookworm/scripts/lib/core_setup | 4 +- testing/scripts/init_server_access.sh | 23 +++++---- testing/scripts/lib/apt_get_edited | 1 + trixie/scripts/from_older_upgrade.sh | 28 ++++++----- 5 files changed, 102 insertions(+), 24 deletions(-) create mode 100644 bookworm/scripts/lib/apt_get_edited create mode 120000 testing/scripts/lib/apt_get_edited diff --git a/bookworm/scripts/lib/apt_get_edited b/bookworm/scripts/lib/apt_get_edited new file mode 100644 index 0000000..cddb15b --- /dev/null +++ b/bookworm/scripts/lib/apt_get_edited @@ -0,0 +1,70 @@ + +apt_get_edited() { + export DEBIAN_FRONTEND=noninteractive + _TO_IGNORE=\ +'(Reading database ... +Preparing to unpack +Unpacking ' + _PREFIXES=\ +'9 5 Get: +5 3 Get: +8 7 Installing new version of config file +6 4 Processing triggers for +7 5 Purging configuration files for +5 4 Removing obsolete conffile +4 2 Removing +5 5 Selecting previously unselected package +5 3 Setting up +11 8 dpkg: warning: unable to delete old directory' + + _LAST_PREFIX='' + apt-get -y $1 2>&1 | while read _LINE; do + _DO_CONTINUE= + for _PLACEHOLDED in $(echo "${_TO_IGNORE}" | sed 's/ */#WHITESPACE_PLACEHOLDER#/g'); do + _WHITESPACED=$(echo "${_PLACEHOLDED}" | sed 's/#WHITESPACE_PLACEHOLDER#/ /g') + _LEN=$(echo -n "${_WHITESPACED}" | wc -c) + _TO_CMP=$(echo "${_LINE}" | cut -c "-${_LEN}") + if [ "${_TO_CMP}" = "${_WHITESPACED}" ]; then + _DO_CONTINUE=1 + break + fi + done + if [ 1 = "${_DO_CONTINUE}" ]; then + continue + fi + _ITEM='' + for _PLACEHOLDED in $(echo "${_PREFIXES}" | sed 's/ */#WHITESPACE_PLACEHOLDER#/g'); do + _WHITESPACED=$(echo "${_PLACEHOLDED}" | sed 's/#WHITESPACE_PLACEHOLDER#/ /g') + _N_WORDS=$(echo "${_WHITESPACED}" | cut -d' ' -f1) + _TO_CMP=$(echo "${_LINE}" | wc -w) + if [ ! "${_N_WORDS}" -eq "${_TO_CMP}" ]; then + continue + fi + _PREFIX=$(echo "${_WHITESPACED}" | cut -d' ' -f3-) + _LEN=$(echo -n "${_PREFIX}" | wc -c) + _TO_CMP=$(echo "${_LINE}" | cut -c "-${_LEN}") + if [ "${_TO_CMP}" != "${_PREFIX}" ]; then + continue + elif [ "${_LAST_PREFIX}" != "${_PREFIX}" ]; then + if [ ! -z "${_LAST_PREFIX}" ]; then + echo '' + fi + echo -n "\r· ${_PREFIX}" + fi + _IDX_ITEM=$(echo "${_WHITESPACED}" | cut -d' ' -f2) + _ITEM=$(echo "${_LINE}" | cut -d' ' "-f${_IDX_ITEM}") + echo -n " ${_ITEM}" + _LAST_PREFIX="${_PREFIX}" + break + done + if [ -z "${_ITEM}" ]; then + if [ ! -z "${_LAST_PREFIX}" ]; then + echo '' + fi + echo "\r# ${_LINE}" + _LAST_PREFIX='' + fi + done + echo '' +} + diff --git a/bookworm/scripts/lib/core_setup b/bookworm/scripts/lib/core_setup index 4a8cdf7..1979770 100644 --- a/bookworm/scripts/lib/core_setup +++ b/bookworm/scripts/lib/core_setup @@ -29,9 +29,9 @@ core_setup() { # before purging, ensure tagged packages installed ensure_packages_of_tags ${_INSTALL_TAGS} echo "Autoremove and purge …" - apt-get -y autopurge > /dev/null + apt_get_edited autopurge echo "And now: dist-upgrade …" - apt-get -y dist-upgrade > /dev/null + apt_get_edited dist-upgrade echo "Setting up user: ${USERNAME}" adduser --quiet --disabled-password --gecos "" "${USERNAME}" diff --git a/testing/scripts/init_server_access.sh b/testing/scripts/init_server_access.sh index 1b57954..08aefd0 100755 --- a/testing/scripts/init_server_access.sh +++ b/testing/scripts/init_server_access.sh @@ -12,10 +12,10 @@ URL_REPO_CLONE='https://plomlompom.com/repos/clone/config' expect_n_args 1 1 '(server)' $@ SERVER="$1" -echo "In ${PATH_KNOWN_HOSTS}, removing previous entry for ${SERVER} if found …" +echo "· In ${PATH_KNOWN_HOSTS}, removing previous entry for ${SERVER} if found …" ssh-keygen -f "${PATH_KNOWN_HOSTS}" -R "${SERVER}" > /dev/null -echo 'Scanning server for new key to add to file …' +echo '· Scanning server for new key to add to file …' PATH_LOG_KEYSCAN_STDERR=$(path_tmp_timestamped) CMD_RM_LOG="rm ${PATH_LOG_KEYSCAN_STDERR}" set +e @@ -24,7 +24,7 @@ RESULT=$? set -e trapp "${CMD_RM_LOG}" if [ "${RESULT}" != "0" ]; then - echo "ERROR: For some reason ssh-keyscan returned non-zero exit code, here's it's stderr log:" + echo "· ERROR: For some reason ssh-keyscan returned non-zero exit code, here's the stderr log:" cat "${PATH_LOG_KEYSCAN_STDERR}" exit "${RESULT}" fi @@ -32,20 +32,23 @@ ${CMD_RM_LOG} trapp CMD_SSH="ssh root@${SERVER}" +CMD_STTY_ECHO='stty echo' -echo 'On server, asking for new root password …' +echo '· On server, asking for new root password …' stty echonl stty -echo +trapp "${CMD_STTY_ECHO}" ${CMD_SSH} 'passwd' -stty echo +${CMD_STTY_ECHO} +trapp -echo 'On server, updating package database …' -${CMD_SSH} 'apt-get update > /dev/null' +echo '· On server, updating package database …' +${CMD_SSH} 'apt-get -q -q update' -echo 'On server, installing git …' +echo '· On server, installing git …' ${CMD_SSH} 'DEBIAN_FRONTEND=noninteractive apt-get -y install git > /dev/null' -echo 'On server, pulling config repo …' +echo '· On server, pulling config repo …' ${CMD_SSH} "git clone -q ${URL_REPO_CLONE}" -echo "Server ready, log in with: ssh root@${SERVER}" +echo "· Server ready, log in with: ssh root@${SERVER}" diff --git a/testing/scripts/lib/apt_get_edited b/testing/scripts/lib/apt_get_edited new file mode 120000 index 0000000..82f1893 --- /dev/null +++ b/testing/scripts/lib/apt_get_edited @@ -0,0 +1 @@ +../../../trixie/scripts/lib/apt_get_edited \ No newline at end of file diff --git a/trixie/scripts/from_older_upgrade.sh b/trixie/scripts/from_older_upgrade.sh index 38ad4ba..41fe28c 100755 --- a/trixie/scripts/from_older_upgrade.sh +++ b/trixie/scripts/from_older_upgrade.sh @@ -1,34 +1,38 @@ #!/bin/sh set -e cd $(dirname "$0") +. lib/apt_get_edited . lib/constants_etc # PATH_ETC PATH_ETC_APT="${PATH_ETC}/apt" PATH_ETC_APT_CONF=${PATH_ETC_APT}/apt.conf.d PATH_COPY_TAG='../copy/all' -export DEBIAN_FRONTEND=noninteractive + +# to reduce clutter … +apt-get -y autoremove apt-listchanges > /dev/null apt_update_to_full_upgrade() { - echo '\nUpdating package database …\n' - apt-get update > /dev/null - echo '\nSoft-upgrading …\n' - apt-get -y -o Dpkg::Options::='--force-confnew' upgrade - echo '\nFull-upgrading …\n' - apt-get -y -o Dpkg::Options::='--force-confnew' full-upgrade - echo '' + echo '· Updating package database …' + apt_get_edited update + + echo '\n· Soft-upgrading …' + apt_get_edited '-q -o Dpkg::Options::=--force-confnew upgrade' + + echo '\n· Full-upgrading …' + apt_get_edited '-q -o Dpkg::Options::=--force-confnew full-upgrade' } PATH_CONF_MIN_DEPS="${PATH_COPY_TAG}${PATH_ETC_APT_CONF}/99_minimize_dependencies" -echo "Copying over ${PATH_CONF_MIN_DEPS} …" +echo "\n· Copying over ${PATH_CONF_MIN_DEPS} …" cp "${PATH_CONF_MIN_DEPS}" "${PATH_ETC_APT_CONF}/" apt_update_to_full_upgrade PATH_CONF_SOURCES="${PATH_COPY_TAG}${PATH_ETC_APT}/sources.list" -echo "Copying over ${PATH_CONF_SOURCES} …" +echo "\n· Copying over ${PATH_CONF_SOURCES} …" cp "${PATH_CONF_SOURCES}" "${PATH_ETC_APT}/" apt_update_to_full_upgrade -echo '\nPurging …\n' -apt-get -q -q -y autopurge +echo '\n· Purging …' +apt_get_edited '-q autopurge' -- 2.30.2