From: Christian Heller <c.heller@plomlompom.de>
Date: Fri, 25 Apr 2025 22:08:07 +0000 (+0200)
Subject: Fix.
X-Git-Url: https://plomlompom.com/repos/%22https:/validator.w3.org/static/tasks?a=commitdiff_plain;h=3f5c7ab99e216883a0c58dba4b9350ecd510dd9f;p=config

Fix.
---

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'