--- /dev/null
+. lib/abort_if_command_unknown
+apt_get_digested() {
+
+abort_if_command_unknown calc
+
+_SEDS=\
+'|\(Reading database \.\.\. .*|IGNORE
+|Generation complete.|IGNORE
+|Preconfiguring packages \.\.\.|IGNORE
+|Preparing to unpack [[:print:]]+ \.\.\.|IGNORE
+|Unpacking [[:print:]]+ \([[:print:]]+\)( over \([[:print:]]+\))? \.\.\.|IGNORE
+Adding diversion(s):|Adding '"'"'diversion of ([[:print:]]+) to ([[:print:]]+) by ([[:print:]]+)'"'"'| \3:[\1 → \2]
+Created symlink(s):|Created symlink '"'"'([[:print:]]+)'"'"' → '"'"'([[:print:]]+)'"'"'\.| [\1 → \2]
+FOLLOW_PREFIX|([[:print:]]+) depends on ([[:print:]]+)( \([>=]+ [[:print:]]+\))?\.|[\2 → \1]
+Installing new version of config file(s):|Installing new version of config file ([[:print:]]+) \.\.\.|\1
+Processing triggers for:|Processing triggers for ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
+Purging configuration files:|Purging configuration files for ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
+Removing:|Removing ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
+Removing diversion(s):|Removing '"'"'diversion of ([[:print:]]+) to ([[:print:]]+) by ([[:print:]]+)| \3:[\1 → \2]
+Removing obsolete conffile(s):|Removing obsolete conffile ([[:print:]]+) \.\.\.|\1
+Selecting previously unselected: |Selecting previously unselected package ([[:print:]]+)\.|\1
+Setting up:|Setting up ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
+Updating to current default:|Updating ([[:print:]]+) to current default.|\1
+disabled or static unit, so not starting:|([[:print:]]+) is a disabled or a static unit, not starting it\.|\1
+disabled or static unit not running, so not starting:|([[:print:]]+) is a disabled or a static unit not running, not starting it\.|\1
+BECOME_NEXT_PREFIX|dpkg: ([[:print:]]+): dependency problems, but removing anyway as you requested:|dpkg warns: despite dependency problems, removing \1 – dependencies:
+dpkg warns: unable to delete old directories (not empty):|dpkg: warning: unable to delete old directory '"'"'([[:print:]]+)'"'"': Directory not empty|\1
+update-alternatives: providing in auto mode:|update-alternatives: using ([[:print:]]+) to provide ([[:print:]]+) \(([[:print:]]+)\) in auto mode| [\1 → \2 (\3)]'
+
+_LAST_PREFIX=''
+DEBIAN_FRONTEND=noninteractive apt-get -y $1 2>&1 | while read _LINE; do
+ _LINE=$(printf '%s' "${_LINE}" | tr -d '\r')
+ if [ -z "${_LINE}" ]; then
+ continue
+ fi
+ _COMPRESSED_ITEM=''
+ for _SED in $(printf '%s' "${_SEDS}" | sed 's/ /#WHITESPACE#/g'); do
+ _WHITESPACED=$(printf '%s' "${_SED}" | sed 's/#WHITESPACE#/ /g')
+ _PREFIX=$(printf '%s' "${_WHITESPACED}" | cut -d'|' -f1)
+ _PATTERN=$(printf '^%s$' "${_WHITESPACED}" | cut -d'|' -f2)
+ _REPLACEMENT=$(printf '%s' "${_WHITESPACED}" | cut -d'|' -f3)
+ if printf '%s' "${_LINE}" | grep -E "${_PATTERN}" > /dev/null; then
+ _COMPRESSED_ITEM=$(printf '%s' "${_LINE}" | sed -E "s|${_PATTERN}|${_REPLACEMENT}|")
+ if [ "${_PREFIX}" = "BECOME_NEXT_PREFIX" ]; then
+ _LEADER_PREFIX="${_COMPRESSED_ITEM}"
+ _COMPRESSED_ITEM=IGNORE
+ elif [ "${_PREFIX}" = "FOLLOW_PREFIX" ]; then
+ _PREFIX="${_LEADER_PREFIX}"
+ fi
+ break
+ fi
+ done
+ if [ "${_COMPRESSED_ITEM}" = "IGNORE" ]; then
+ continue
+ elif [ -z "${_COMPRESSED_ITEM}" ]; then
+ _LAST_PREFIX=''
+ printf '\n\r%s' "${_LINE}"
+ else
+ if [ "${_PREFIX}" != "${_LAST_PREFIX}" ]; then
+ printf '\n\r# apt_get_digested: %s' "${_PREFIX}"
+ _LAST_PREFIX="${_PREFIX}"
+ fi
+ printf ' %s' "${_COMPRESSED_ITEM}"
+ fi
+done
+printf '\r\n\n'
+}
+++ /dev/null
-. lib/abort_if_command_unknown
-apt_get_edited() {
-
-abort_if_command_unknown calc
-
-_SEDS=\
-'|\(Reading database \.\.\. .*|IGNORE
-|Generation complete.|IGNORE
-|Preconfiguring packages \.\.\.|IGNORE
-|Preparing to unpack [[:print:]]+ \.\.\.|IGNORE
-|Unpacking [[:print:]]+ \([[:print:]]+\)( over \([[:print:]]+\))? \.\.\.|IGNORE
-Adding diversion(s):|Adding '"'"'diversion of ([[:print:]]+) to ([[:print:]]+) by ([[:print:]]+)'"'"'| \3:[\1 → \2]
-Created symlink(s):|Created symlink '"'"'([[:print:]]+)'"'"' → '"'"'([[:print:]]+)'"'"'\.| [\1 → \2]
-FOLLOW_PREFIX|([[:print:]]+) depends on ([[:print:]]+)( \([>=]+ [[:print:]]+\))?\.|[\2 → \1]
-Installing new version of config file(s):|Installing new version of config file ([[:print:]]+) \.\.\.|\1
-Processing triggers for:|Processing triggers for ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
-Purging configuration files:|Purging configuration files for ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
-Removing:|Removing ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
-Removing diversion(s):|Removing '"'"'diversion of ([[:print:]]+) to ([[:print:]]+) by ([[:print:]]+)| \3:[\1 → \2]
-Removing obsolete conffile(s):|Removing obsolete conffile ([[:print:]]+) \.\.\.|\1
-Selecting previously unselected: |Selecting previously unselected package ([[:print:]]+)\.|\1
-Setting up:|Setting up ([[:print:]]+) \([[:print:]]+\) \.\.\.|\1
-Updating to current default:|Updating ([[:print:]]+) to current default.|\1
-disabled or static unit, so not starting:|([[:print:]]+) is a disabled or a static unit, not starting it\.|\1
-disabled or static unit not running, so not starting:|([[:print:]]+) is a disabled or a static unit not running, not starting it\.|\1
-BECOME_NEXT_PREFIX|dpkg: ([[:print:]]+): dependency problems, but removing anyway as you requested:|dpkg warns: despite dependency problems, removing \1 – dependencies:
-dpkg warns: unable to delete old directories (not empty):|dpkg: warning: unable to delete old directory '"'"'([[:print:]]+)'"'"': Directory not empty|\1
-update-alternatives: providing in auto mode:|update-alternatives: using ([[:print:]]+) to provide ([[:print:]]+) \(([[:print:]]+)\) in auto mode| [\1 → \2 (\3)]'
-
-_LAST_PREFIX=''
-DEBIAN_FRONTEND=noninteractive apt-get -y $1 2>&1 | while read _LINE; do
- _LINE=$(printf '%s' "${_LINE}" | tr -d '\r')
- if [ -z "${_LINE}" ]; then
- continue
- fi
- _COMPRESSED_ITEM=''
- for _SED in $(printf '%s' "${_SEDS}" | sed 's/ /#WHITESPACE#/g'); do
- _WHITESPACED=$(printf '%s' "${_SED}" | sed 's/#WHITESPACE#/ /g')
- _PREFIX=$(printf '%s' "${_WHITESPACED}" | cut -d'|' -f1)
- _PATTERN=$(printf '^%s$' "${_WHITESPACED}" | cut -d'|' -f2)
- _REPLACEMENT=$(printf '%s' "${_WHITESPACED}" | cut -d'|' -f3)
- if printf '%s' "${_LINE}" | grep -E "${_PATTERN}" > /dev/null; then
- _COMPRESSED_ITEM=$(printf '%s' "${_LINE}" | sed -E "s|${_PATTERN}|${_REPLACEMENT}|")
- if [ "${_PREFIX}" = "BECOME_NEXT_PREFIX" ]; then
- _LEADER_PREFIX="${_COMPRESSED_ITEM}"
- _COMPRESSED_ITEM=IGNORE
- elif [ "${_PREFIX}" = "FOLLOW_PREFIX" ]; then
- _PREFIX="${_LEADER_PREFIX}"
- fi
- break
- fi
- done
- if [ "${_COMPRESSED_ITEM}" = "IGNORE" ]; then
- continue
- elif [ -z "${_COMPRESSED_ITEM}" ]; then
- _LAST_PREFIX=''
- printf '\n\r%s' "${_LINE}"
- else
- if [ "${_PREFIX}" != "${_LAST_PREFIX}" ]; then
- printf '\n\r# apt_get_edited: %s' "${_PREFIX}"
- _LAST_PREFIX="${_PREFIX}"
- fi
- printf ' %s' "${_COMPRESSED_ITEM}"
- fi
-done
-printf '\r\n\n'
-}
+. lib/apt_get_digested
. lib/constants_user # USERNAME
. lib/copy_dirtrees_of_tags
. lib/minimize_installation
minimize_installation ${_INSTALL_TAGS}
prefixed_msg 'And now: dist-upgrade …'
-apt_get_edited '-q -q dist-upgrade'
+apt_get_digested '-q -q dist-upgrade'
prefixed_msg "Setting up user: ${USERNAME}"
adduser --quiet --disabled-password --gecos "" "${USERNAME}"
-. lib/apt_get_edited
+. lib/apt_get_digested
. lib/prefixed_msg
ensure_packages_of_tags() {
prefixed_msg_init '# ensure_packages_of_tags: '
echo "nothing to install."
else
echo "ensuring installation of: ${_PACKAGES}"
- apt_get_edited "-q -q -o Dpkg::Options::=--force-confnew install ${_PACKAGES}"
+ apt_get_digested "-q -q -o Dpkg::Options::=--force-confnew install ${_PACKAGES}"
fi
done
prefixed_msg 'finished'
-. lib/apt_get_edited
+. lib/apt_get_digested
. lib/ensure_packages_of_tags
. lib/prefixed_msg
minimize_installation() {
ensure_packages_of_tags ${_INSTALL_TAGS}
prefixed_msg 'run autopurge to get rid of all unwanted packages …'
-apt_get_edited '-q -q autopurge'
+apt_get_digested '-q -q autopurge'
prefixed_msg 'finished'
prefixed_msg_exit
prefixed_msg_init() {
- prefixed_msg_OLD_PREFIX="${prefixed_msg_PREFIX}"
+ prefixed_msg_OLD_PREFIX="${prefixed_msg_PREFIX}|${prefixed_msg_OLD_PREFIX}"
prefixed_msg_PREFIX="$1"
}
prefixed_msg_exit() {
- prefixed_msg_PREFIX="${prefixed_msg_OLD_PREFIX}"
+ prefixed_msg_PREFIX=$(echo "${prefixed_msg_OLD_PREFIX}" | cut -d'|' -f1)
+ prefixed_msg_OLD_PREFIX=$(echo "${prefixed_msg_OLD_PREFIX}" | cut -d'|' -f2-)
}
prefixed_msg() {
printf '%s%s\n' "${prefixed_msg_PREFIX}" "$1"
+++ /dev/null
-../../../trixie/scripts/lib/apt_get_edited
\ No newline at end of file