spk rev 14
Some fixes to lib/libspk.sh
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 15 10:19:36 2012 +0200 (2012-05-15) |
parents | 3ec801cda176 |
children | a1d998d5f6aa |
files | lib/libspk.sh |
line diff
1.1 --- a/lib/libspk.sh Tue May 15 10:11:54 2012 +0200 1.2 +++ b/lib/libspk.sh Tue May 15 10:19:36 2012 +0200 1.3 @@ -11,6 +11,7 @@ 1.4 . /etc/slitaz/slitaz.conf 1.5 1.6 # Internal variables. 1.7 +# We should have ${root}/$PKGS_DB ??? 1.8 mirrorurl="$PKGS_DB/mirror" 1.9 installed="$PKGS_DB/installed" 1.10 pkgsdesc="$PKGS_DB/packages.desc" 1.11 @@ -22,9 +23,7 @@ 1.12 # 1.13 # Functions 1.14 1.15 - 1.16 -# Display receipt information. 1.17 -# Expects a receipt to be sourced 1.18 +# Display receipt information. Expects a receipt to be sourced 1.19 receipt_info() { 1.20 cat << EOT 1.21 $(gettext "Version :") ${VERSION}${EXTRAVERSION} 1.22 @@ -38,7 +37,6 @@ 1.23 extract_receipt() { 1.24 local dir="$1" 1.25 local file="$2" 1.26 - 1.27 pushd "$dir" > /dev/null 1.28 { cpio --quiet -i receipt > /dev/null 2>&1; } < $file 1.29 popd > /dev/null 1.30 @@ -46,7 +44,7 @@ 1.31 1.32 # Used by: list 1.33 count_installed() { 1.34 - local count=$(ls $installed | wc -l) 1.35 + local count=$(ls ${root}${installed} | wc -l) 1.36 gettext "Installed packages"; echo ": $count" 1.37 } 1.38 1.39 @@ -57,8 +55,8 @@ 1.40 } 1.41 1.42 is_package_mirrored() { 1.43 - local package_name=$1 1.44 - local occurance=$(cat $pkgsdesc | grep "$package_name ") 1.45 + local name=$1 1.46 + local occurance=$(cat $pkgsdesc | grep "$name ") 1.47 [ -n "$occurance" ] 1.48 } 1.49 1.50 @@ -70,20 +68,19 @@ 1.51 case "$package" in 1.52 *.tazpkg) 1.53 echo "${mirror%/}/$package" 1.54 - wget -c ${mirror%/}/$package ;; 1.55 + wget -c ${mirror%/}/$package ;; 1.56 esac 1.57 } 1.58 1.59 # Assume package_name is valid 1.60 # There may be a more efficient way to do this... 1.61 full_package() { 1.62 - local package_name=$1 1.63 - local occurance=$(cat $pkgsdesc | grep "$package_name ") 1.64 + local name=$1 1.65 + local occurance=$(cat $pkgsdesc | grep "$name ") 1.66 local count=0 1.67 for i in $(echo $occurance | tr "|" "\n"); do 1.68 if [ $count -eq 1 ]; then 1.69 - echo $package_name-$i 1.70 - return 1.71 + echo $name-$i && return 1.72 fi 1.73 count=$(($count+1)) 1.74 done 1.75 @@ -92,31 +89,30 @@ 1.76 # Check if a package is already installed. 1.77 # Parameters: package 1.78 check_for_installed_package() { 1.79 - local package_name="$1" 1.80 - 1.81 - if [ -d "$installed/$package_name" ]; then 1.82 + local name="$1" 1.83 + if [ -d "${root}${installed}/$name" ]; then 1.84 newline 1.85 - echo $package_name $(gettext "package is already installed.") 1.86 + echo $name $(gettext "package is already installed.") 1.87 exit 0 1.88 fi 1.89 } 1.90 1.91 # get an already installed package from packages.equiv TODO REDO! 1.92 equivalent_pkg() { 1.93 - for i in $(grep -hs "^$1=" $PKGS_DB/packages.equiv \ 1.94 - $PKGS_DB/undigest/*/packages.equiv | sed "s/^$1=//") 1.95 + for i in $(grep -hs "^$1=" ${root}${PKGS_DB}/packages.equiv \ 1.96 + ${root}${PKGS_DB}/undigest/*/packages.equiv | sed "s/^$1=//") 1.97 do 1.98 if echo $i | fgrep -q : ; then 1.99 # format 'alternative:newname' 1.100 # if alternative is installed then substitute newname 1.101 - if [ -f $installed/${i%:*}/receipt ]; then 1.102 + if [ -f ${root}${installed}/${i%:*}/receipt ]; then 1.103 # substitute package dependancy 1.104 echo ${i#*:} 1.105 return 1.106 fi 1.107 else 1.108 # if alternative is installed then nothing to install 1.109 - if [ -f $installed/$i/receipt ]; then 1.110 + if [ -f ${root}${installed}/$i/receipt ]; then 1.111 # substitute installed package 1.112 echo $i 1.113 return 1.114 @@ -140,17 +136,17 @@ 1.115 # Calculate missing dependencies 1.116 for pkgorg in $depends; do 1.117 local pkg=$(equivalent_pkg $pkgorg) 1.118 - if [ ! -d "$installed/$pkg" ]; then 1.119 + if [ ! -d "${root}${installed}/$pkg" ]; then 1.120 gettext "Missing: \$pkg"; newline 1.121 deps=$(($deps+1)) 1.122 - elif [ ! -f "$installed/$pkg/receipt" ]; then 1.123 + elif [ ! -f "${root}${installed}/$pkg/receipt" ]; then 1.124 gettext "WARNING Dependency loop between \$package and \$pkg."; newline 1.125 fi 1.126 done 1.127 if [ $deps -gt 0 ]; then 1.128 echo $deps $(gettext "missing package(s) to install.") 1.129 fi 1.130 - 1.131 + 1.132 gettext "\$deps missing package(s) to install."; newline 1.133 1.134 # Return true if missing deps