]> git.saurik.com Git - apt.git/blobdiff - dselect/install
Join with aliencode
[apt.git] / dselect / install
index 0806f7b354d7d66603bc61b254a84b451b4b0dc2..f93414dc42b48e8ed8544f315899188f2dee4347 100755 (executable)
@@ -5,11 +5,15 @@ 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 \
-                     ARCHIVES Dir::Cache::Archives/ \
-                     WAIT DSelect::WaitAfterDownload`
+                      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
 
 eval $RES
 set +e
 
@@ -20,15 +24,15 @@ yesno() {
        local ans def defp
        if [ "$2" ];then
                case $2 in
        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;;
@@ -39,13 +43,13 @@ yesno() {
        echo $ans | tr YN yn
 }
 
        echo $ans | tr YN yn
 }
 
-if [ x$WAIT = "xyes" ]; then
-   $APTGET $OPTS -d dselect-upgrade
+if [ x$WAIT = "xtrue" ]; then
+   $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" -d dselect-upgrade
    echo "Press enter to continue." && read RES
    echo "Press enter to continue." && read RES
-   $APTGET $OPTS dselect-upgrade
+   $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade
    RES=$?
 else
    RES=$?
 else
-   $APTGET $OPTS dselect-upgrade
+   $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade
    RES=$?
 fi
 
    RES=$?
 fi
 
@@ -61,19 +65,29 @@ if [ $RES -eq 0 ]; then
         -eq 0 ]; then
       exit 0
    fi
         -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
      auto)
    
    # Check the cleaning mode
    case `echo $CLEAN | tr '[:upper:]' '[:lower:]'` in
      auto)
-       $APTGET autoclean && echo "Press enter to continue." && read RES && exit 0;
+       $APTGET "$APT_OPT0" "$APT_OPT1" autoclean &&
+          echo "Press enter to continue." && read RES && exit 0;
        ;;
      always)
        ;;
      always)
-       $APTGET clean && echo "Press enter to continue." && read RES && exit 0;
+       $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 .deb 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
        ;;
      *) 
@@ -85,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