+. lib/abort_if_command_unknown
apt_get_edited() {
- export DEBIAN_FRONTEND=noninteractive
- _TO_IGNORE=\
+abort_if_command_unknown calc
+
+_TO_IGNORE=\
'(Reading database ...
-Preparing to unpack
+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
+_PREFIXES=\
+'9 5 0 Get:
+5 2-3 0 Get:
+6 2-4 0 Get:
+7 2-3 0 Get:
+4 2-3 0 Hit:
+8 7 0 Installing new version of config file
+6 4 0 Processing triggers for
+7 5 0 Purging configuration files for
+5 4 0 Removing obsolete conffile
+4 2 0 Removing
+5 5 1 Selecting previously unselected package
+5 3 0 Setting up
+11 8 1 dpkg: warning: unable to delete old directory'
+
+_LAST_PREFIX=''
+DEBIAN_FRONTEND=noninteractive 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
- _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
+ _PREFIX=$(echo "${_WHITESPACED}" | cut -d' ' -f4-)
+ _LEN_PREFIX=$(echo -n "${_PREFIX}" | wc -c)
+ _TO_CMP=$(echo "${_LINE}" | cut -c "-${_LEN_PREFIX}")
+ if [ "${_TO_CMP}" != "${_PREFIX}" ]; then
+ continue
+ elif [ "${_LAST_PREFIX}" != "${_PREFIX}" ]; then
+ if [ ! -z "${_LAST_PREFIX}" ]; then
echo ''
fi
- echo "\r# ${_LINE}"
- _LAST_PREFIX=''
+ echo -n "\r· ${_PREFIX}"
+ fi
+ _IDX_ITEM=$(echo "${_WHITESPACED}" | cut -d' ' -f2)
+ _CUTOFF=$(echo "${_WHITESPACED}" | cut -d' ' -f3)
+ _ITEM=$(echo "${_LINE}" | cut -d' ' "-f${_IDX_ITEM}")
+ if [ "${_CUTOFF}" -gt 0 ]; then
+ _LEN_ITEM=$(echo -n "${_ITEM}" | wc -c)
+ _LEN_ITEM_CUT=$(calc "${_LEN_ITEM} - ${_CUTOFF} - 1" | tr -d '\t')
+ _ITEM=$(echo "${_ITEM}" | cut -c "-${_LEN_ITEM_CUT}")
fi
+ echo -n " ${_ITEM}"
+ _LAST_PREFIX="${_PREFIX}"
+ break
done
- echo ''
+ if [ -z "${_ITEM}" ]; then
+ if [ ! -z "${_LAST_PREFIX}" ]; then
+ echo ''
+ fi
+ echo "\r# ${_LINE}"
+ _LAST_PREFIX=''
+ fi
+done
+echo ''
}
-
# to reduce clutter …
apt-get -y autoremove apt-listchanges > /dev/null
+apt-get -q -q -y install calc > /dev/null
+
apt_update_to_full_upgrade() {
echo '· Updating package database …'
- apt_get_edited update
+ apt_get_edited '-q -q update'
- echo '\n· Soft-upgrading …'
- apt_get_edited '-q -o Dpkg::Options::=--force-confnew upgrade'
+ echo '· Soft-upgrading …'
+ apt_get_edited '-q -q -o Dpkg::Options::=--force-confnew upgrade'
- echo '\n· Full-upgrading …'
- apt_get_edited '-q -o Dpkg::Options::=--force-confnew full-upgrade'
+ echo '· Full-upgrading …'
+ apt_get_edited '-q -q -o Dpkg::Options::=--force-confnew full-upgrade'
}
PATH_CONF_MIN_DEPS="${PATH_COPY_TAG}${PATH_ETC_APT_CONF}/99_minimize_dependencies"
-echo "\n· Copying over ${PATH_CONF_MIN_DEPS} …"
+echo "· 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 "\n· Copying over ${PATH_CONF_SOURCES} …"
+echo "· Copying over ${PATH_CONF_SOURCES} …"
cp "${PATH_CONF_SOURCES}" "${PATH_ETC_APT}/"
apt_update_to_full_upgrade
-echo '\n· Purging …'
-apt_get_edited '-q autopurge'
+echo '· Purging …'
+apt_get_edited '-q -q autopurge'