home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 25 Apr 2025 22:08:07 +0000 (00:08 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 25 Apr 2025 22:08:07 +0000 (00:08 +0200)
bookworm/scripts/lib/apt_get_edited [new file with mode: 0644]
bookworm/scripts/lib/core_setup
testing/scripts/init_server_access.sh
testing/scripts/lib/apt_get_edited [new symlink]
trixie/scripts/from_older_upgrade.sh

diff --git a/bookworm/scripts/lib/apt_get_edited b/bookworm/scripts/lib/apt_get_edited
new file mode 100644 (file)
index 0000000..cddb15b
--- /dev/null
@@ -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 ''
+}
+
index 4a8cdf7a76145a70a982b7b8eff26c6627254157..1979770550739dc67882d84b24aa18c6d8c685fd 100644 (file)
@@ -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}"
index 1b57954107fcde047e482b8ef87def80c805a783..08aefd0939b929f134f9b74599b726f9b436df2c 100755 (executable)
@@ -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 (symlink)
index 0000000..82f1893
--- /dev/null
@@ -0,0 +1 @@
+../../../trixie/scripts/lib/apt_get_edited
\ No newline at end of file
index 38ad4ba61fc2d53c40d8efae877cb639707a115b..41fe28c760831a666960526ccad39ecd6b02f7bb 100755 (executable)
@@ -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'