diff options
Diffstat (limited to 'dselect/update')
-rwxr-xr-x | dselect/update | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/dselect/update b/dselect/update new file mode 100755 index 000000000..0ab317ee4 --- /dev/null +++ b/dselect/update @@ -0,0 +1,48 @@ +#!/bin/bash +set -e + +# Set the textdomain for the translations using $"..." +TEXTDOMAIN="apt" + +# Get the configuration from /etc/apt/apt.conf +CLEAN="prompt" +OPTS="" +APTGET="/usr/bin/apt-get" +APTCACHE="/usr/bin/apt-cache" +DPKG="/usr/bin/dpkg" +DPKG_OPTS="--admindir=$1" +APT_OPT0="-oDir::State::status=$1/status" +APT_OPT1="-oDPkg::Options::=$DPKG_OPTS" +CACHEDIR="/var/cache/apt" +PROMPT="false" +RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::UpdateOptions \ + DPKG Dir::Bin::dpkg/f APTGET Dir::Bin::apt-get/f \ + APTCACHE Dir::Bin::apt-cache/f CACHEDIR Dir::Cache/d \ + PROMPT DSelect::PromptAfterUpdate/b` +eval $RES + +# It looks slightly ugly to have a double / in the dpkg output +CACHEDIR=`echo $CACHEDIR | sed -e "s|/$||"` + +STATUS=1 +if $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" update +then + echo $"Merging available information" + rm -f $CACHEDIR/available + $APTCACHE dumpavail > $CACHEDIR/available + $DPKG "$DPKG_OPTS" --update-avail $CACHEDIR/available + rm -f $CACHEDIR/available + + case "$CLEAN" in + Pre-Auto|PreAuto|pre-auto) + $APTGET "$APT_OPT0" "$APT_OPT1" autoclean;; + esac + + STATUS=0 +fi + +if [ x$PROMPT = "xtrue" ]; then + echo $"Press [Enter] to continue." && read RES; +fi + +exit $STATUS |