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