]> git.saurik.com Git - apt.git/blobdiff - dselect/install
Gettext stuff
[apt.git] / dselect / install
index e1bea340d07ba67593839c78ff8633a7eecc39b3..f93414dc42b48e8ed8544f315899188f2dee4347 100755 (executable)
@@ -1,32 +1,38 @@
 #!/bin/sh
 
 # Get the configuration from /etc/apt/apt.conf
 #!/bin/sh
 
 # Get the configuration from /etc/apt/apt.conf
-CLEAN="auto"
+CLEAN="prompt"
 OPTS="-f"
 APTGET="/usr/bin/apt-get"
 DPKG="/usr/bin/dpkg"
 OPTS="-f"
 APTGET="/usr/bin/apt-get"
 DPKG="/usr/bin/dpkg"
+DPKG_OPTS="--admindir=$1"
+APT_OPT0="-oDir::State::status=$1/status"
+APT_OPT1="-oDPkg::Options::=$DPKG_OPTS"
 set -e
 RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::Options \
 set -e
 RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::Options \
-                      DPKG Dir::Bin::dpkg APTGET Dir::Bin::apt-get`
+                      DPKG Dir::Bin::dpkg/f APTGET Dir::Bin::apt-get/f \
+                     ARCHIVES Dir::Cache::Archives/d \
+                     WAIT DSelect::WaitAfterDownload/b \
+                     CHECKDIR DSelect::CheckDir/b`
 eval $RES
 set +e
 
 # Yes/No Prompter
 eval $RES
 set +e
 
 # Yes/No Prompter
-function yesno() {
+yesno() {
 # $1 = prompt
 # $2 = default(y)
        local ans def defp
        if [ "$2" ];then
                case $2 in
 # $1 = prompt
 # $2 = default(y)
        local ans def defp
        if [ "$2" ];then
                case $2 in
-                       Y|y)    defp="(Y/n)" def=y;;
-                       N|n)    defp="(y/N)" def=n;;
+                       Y|y)    defp="[Y/n]" def=y;;
+                       N|n)    defp="[y/N]" def=n;;
                        *)      echo "Bad default setting!" 1>&2; exit 1;;
                esac
        else
                        *)      echo "Bad default setting!" 1>&2; exit 1;;
                esac
        else
-               defp="(y/N)" def=n
+               defp="[y/N]" def=n
        fi
        while :;do
        fi
        while :;do
-               echo -n "$1$defp" 1>&3
+               echo -n "$1 $defp " 1>&3
                read ans
                case $ans in
                        Y|y|N|n)        break;;
                read ans
                case $ans in
                        Y|y|N|n)        break;;
@@ -37,8 +43,15 @@ function yesno() {
        echo $ans | tr YN yn
 }
 
        echo $ans | tr YN yn
 }
 
-$APTGET $OPTS dselect-upgrade
-RES=$?
+if [ x$WAIT = "xtrue" ]; then
+   $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" -d dselect-upgrade
+   echo "Press enter to continue." && read RES
+   $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade
+   RES=$?
+else
+   $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade
+   RES=$?
+fi
 
 # 1 means the user choose no at the prompt
 if [ $RES -eq 1 ]; then
 
 # 1 means the user choose no at the prompt
 if [ $RES -eq 1 ]; then
@@ -47,15 +60,34 @@ fi
 
 # Finished OK
 if [ $RES -eq 0 ]; then
 
 # Finished OK
 if [ $RES -eq 0 ]; then
+
+   if [ `ls $ARCHIVES $ARCHIVES/partial | egrep -v "^lock$|^partial$" | wc -l` \
+        -eq 0 ]; then
+      exit 0
+   fi
+
+   NEWLS=`ls -ld $ARCHIVES`
+   if [ x$CHECKDIR = "xtrue" ]; then
+      if [ "x$OLDLS" = "x$NEWLS" ]; then
+         exit 0
+      fi
+   fi
+   
    # Check the cleaning mode
    case `echo $CLEAN | tr '[:upper:]' '[:lower:]'` in
    # Check the cleaning mode
    case `echo $CLEAN | tr '[:upper:]' '[:lower:]'` in
-     always|auto) 
-       $APTGET clean && echo "Press enter to continue." && read RES && exit 0;
+     auto)
+       $APTGET "$APT_OPT0" "$APT_OPT1" autoclean &&
+          echo "Press enter to continue." && read RES && exit 0;
+       ;;
+     always)
+       $APTGET "$APT_OPT0" "$APT_OPT1" clean &&
+          echo "Press enter to continue." && read RES && exit 0;
        ;;
      prompt)
        exec 3>&1
        ;;
      prompt)
        exec 3>&1
-       if [ `yesno "Do you want to erase the downloaded files " y` = y ]; then
-          $APTGET clean && echo "Press enter to continue." && read RES && exit 0;
+       if [ `yesno "Do you want to erase any previously downloaded .deb files?" y` = y ]; then
+          $APTGET "$APT_OPT0" "$APT_OPT1" clean &&
+           echo "Press enter to continue." && read RES && exit 0;
        fi
        ;;
      *) 
        fi
        ;;
      *) 
@@ -67,7 +99,7 @@ else
    echo "or errors caused by missing dependencies. This is OK, only the errors"
    echo "above this message are important. Please fix them and run [I]nstall again"
    echo "Press enter to continue."
    echo "or errors caused by missing dependencies. This is OK, only the errors"
    echo "above this message are important. Please fix them and run [I]nstall again"
    echo "Press enter to continue."
-   read RES && $DPKG --configure -a
+   read RES && $DPKG "$DPKG_OPTS" --configure -a
    exit 100
 fi
 
    exit 100
 fi