tazpkg rev 419
A cache dir for each repo & fixed md5sum check
author | Antoine Bodin <gokhlayeh@slitaz.org> |
---|---|
date | Tue Feb 01 02:21:48 2011 +0100 (2011-02-01) |
parents | 2f4f55db2600 |
children | c69340c2b441 |
files | tazpkg |
line diff
1.1 --- a/tazpkg Fri Jan 28 23:03:37 2011 +0100 1.2 +++ b/tazpkg Tue Feb 01 02:21:48 2011 +0100 1.3 @@ -53,6 +53,7 @@ 1.4 TOP_DIR=`pwd` 1.5 TMP_DIR=$tmp/$RANDOM 1.6 INSTALL_LIST="" 1.7 +SAVE_CACHE_DIR="$CACHE_DIR" 1.8 1.9 # Path to tazpkg used dir and configuration files 1.10 INSTALLED=$LOCALSTATE/installed 1.11 @@ -232,6 +233,21 @@ 1.12 fi 1.13 } 1.14 1.15 +get_cache_dir() 1.16 +{ 1.17 + echo $rep > $tmp/rep 1.18 + if [ "$rep" = /var/lib/tazpkg ]; then 1.19 + CACHE_DIR="$SAVE_CACHE_DIR/$SLITAZ_VERSION/packages" 1.20 + elif [ "${rep%-incoming}" = "$rep" ]; then 1.21 + CACHE_DIR="$SAVE_CACHE_DIR/${rep##*/}/packages" 1.22 + else 1.23 + rep="${rep%-incoming}" 1.24 + CACHE_DIR="$SAVE_CACHE_DIR/${rep##*/}/packages-incoming" 1.25 + fi 1.26 + [ -d "$CACHE_DIR" ] || mkdir -p $CACHE_DIR 1.27 + echo $CACHE_DIR > $tmp/cachedir 1.28 +} 1.29 + 1.30 # get an already installed package from packages.equiv 1.31 equivalent_pkg() 1.32 { 1.33 @@ -297,7 +313,7 @@ 1.34 $rep/packages.list | head -1) 1.35 [ "$pkg" ] || pkg=$(grep -sh "^$1-.[\.0-9]" \ 1.36 $rep/packages.list | head -1) 1.37 - [ "$pkg" ] && break 1.38 + [ "$pkg" ] && get_cache_dir && break 1.39 done 1.40 if [ -z "$pkg" ]; then 1.41 # Check for vitual package 1.42 @@ -319,9 +335,12 @@ 1.43 local filename 1.44 local check_only 1.45 check_only="$1" 1.46 - filename=$(get_package_filename $PACKAGE) 1.47 - if [ -n "$filename" ]; then 1.48 + filename=`get_package_filename $PACKAGE` 1.49 + if [ "$filename" ]; then 1.50 PACKAGE=$filename 1.51 + CACHE_DIR=$(cat $tmp/cachedir) 1.52 + rep=$(cat $tmp/rep) 1.53 + rm -f $tmp/rep $tmp/cachedir 1.54 else 1.55 echo "" 1.56 eval_gettext "Unable to find: \$PACKAGE in the mirrored packages list."; echo 1.57 @@ -2609,19 +2628,18 @@ 1.58 [ "$root" ] && ROOT="$root" && check_dir "$root" 1.59 [ "$list" ] && INSTALL_LIST="$list" 1.60 AUTOEXEC="no" 1.61 - if ! check_for_package_in_list check; then 1.62 - PACKAGE=get-$PACKAGE 1.63 + check_for_package_in_list check || { PACKAGE=get-$PACKAGE 1.64 AUTOEXEC=$PACKAGE 1.65 check_for_package_in_list 1.66 if [ -n "$(get_installed_package_pathname $PACKAGE $ROOT)" ]; then 1.67 + CACHE_DIR="${CACHE_DIR%/*}/get" 1.68 + [ -d "$CACHE_DIR" ] || mkdir -p $CACHE_DIR 1.69 $AUTOEXEC $ROOT 1.70 exit 0 1.71 fi 1.72 - fi 1.73 + } 1.74 # Check if forced install. 1.75 - if [ "$DO_CHECK" = "no" ]; then 1.76 - rm -f $CACHE_DIR/$PACKAGE.tazpkg 1.77 - else 1.78 + if ! [ "$DO_CHECK" = "no" ]; then 1.79 check_for_installed_package $ROOT 1.80 fi 1.81 cd $CACHE_DIR 1.82 @@ -2632,7 +2650,7 @@ 1.83 eval_gettext "Continuing \$PACKAGE download"; echo 1.84 download $PACKAGE.tazpkg 1.85 } 1.86 - if [ "$(md5sum $PACKAGE.tazpkg)" != "$(fgrep " $PACKAGE.tazpkg" /var/lib/tazpkg/packages.md5)" ]; then 1.87 + if [ "$(md5sum $PACKAGE.tazpkg)" != "$(fgrep " $PACKAGE.tazpkg" $rep/packages.md5)" ]; then 1.88 rm -f $PACKAGE.tazpkg 1.89 download $PACKAGE.tazpkg 1.90 fi