tazpkg diff modules/get @ rev 970

Modules "get" and "install": fix cookmode again
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Nov 26 18:53:08 2018 +0200 (2018-11-26)
parents f40de1e052aa
children d2dc3d5ed06d
line diff
     1.1 --- a/modules/get	Mon Nov 26 14:59:03 2018 +0200
     1.2 +++ b/modules/get	Mon Nov 26 18:53:08 2018 +0200
     1.3 @@ -160,8 +160,8 @@
     1.4  		[ ! -e 'packages.info' -a ! -e "packages-$SLITAZ_ARCH.info" ] &&
     1.5  			tazpkg mkdb "$extra_cache" --root='' --forced >/dev/null
     1.6  
     1.7 -		pi='packages.info'
     1.8 -		[ -e "$pi" ] || pi="packages-$SLITAZ_ARCH.info"
     1.9 +		pi="packages-$SLITAZ_ARCH.info"
    1.10 +		[ -e "$pi" ] || pi='packages.info'
    1.11  
    1.12  		if [ -e "$pi" ]; then
    1.13  			awk -F$'\t' -vp="$1" '$1==p{exit 1}' $pi
    1.14 @@ -295,7 +295,11 @@
    1.15  virtual_name() {
    1.16  	# input:  $1 virtual package name
    1.17  	#         $2 repository db directory
    1.18 -	local i
    1.19 +	local i pi
    1.20 +
    1.21 +	pi="$2/packages-$SLITAZ_ARCH.info"
    1.22 +	[ -e "$pi" ] || pi="$2/packages.info"
    1.23 +
    1.24  	unset IFS
    1.25  	for i in $(grep -hs "^$1=" "$2/packages.equiv" | sed "s/^$1=//"); do
    1.26  		if echo $i | fgrep -q : ; then
    1.27 @@ -306,7 +310,7 @@
    1.28  				echo ${i#*:}
    1.29  				return
    1.30  			fi
    1.31 -		elif ! grep -q "^$1	" "$2/packages.info" || [ -f "$INSTALLED/$i/receipt" ]; then
    1.32 +		elif ! grep -q "^$1	" "$pi" || [ -f "$INSTALLED/$i/receipt" ]; then
    1.33  			# unconditional substitution
    1.34  			echo $i
    1.35  			return
    1.36 @@ -320,12 +324,16 @@
    1.37  	# input:  $1 virtual package name
    1.38  	#         $2 repository db directory
    1.39  	# output: display possible package name
    1.40 +	local pi
    1.41  
    1.42  	debug "\nvirtual_pkg('$1', '$2')"
    1.43  
    1.44 +	pi="$2/packages-$SLITAZ_ARCH.info"
    1.45 +	[ -e "$pi" ] || pi="$2/packages.info"
    1.46 +
    1.47  	if [ "$tazpkg_command" != 'get-install' ]; then
    1.48  		# 'get' command: download any package
    1.49 -		if [ -z "$(awk -F$'\t' -vp="$1" '{if ($1 == p) print p}' "$2/packages.info")" ]; then
    1.50 +		if [ -z "$(awk -F$'\t' -vp="$1" '{if ($1 == p) print p}' "$pi")" ]; then
    1.51  			# This package does not exist in the list, it may be a virtual package
    1.52  			virtual_name "$1" "$2"
    1.53  		else
    1.54 @@ -351,17 +359,16 @@
    1.55  
    1.56  	IFS=$'\n'
    1.57  	for rep in $PRIORITY; do
    1.58 -		pi="$rep/packages.info"
    1.59 -		[ ! -e "$pi" ] && pi="$rep/packages-$SLITAZ_ARCH.info"
    1.60 -		[ ! -e "$pi" ] && continue
    1.61 +		pi="$rep/packages-$SLITAZ_ARCH.info"
    1.62 +		[ -e "$pi" ] || pi="$rep/packages.info"
    1.63 +		[ -e "$pi" ] || continue
    1.64  
    1.65  		# If found, output string "<name>-<ver>"
    1.66  		namever=$(awk -F$'\t' -vpkg="$(virtual_pkg "$1" "$rep")" \
    1.67  			'$1==pkg || $1"-"$2==pkg {printf "%s-%s", $1, $2; exit}' "$pi")
    1.68  
    1.69  		pkgfile="$namever-$SLITAZ_ARCH.tazpkg"
    1.70 -		[ -e "$pkgfile" ] ||
    1.71 -		pkgfile="$namever-any.tazpkg"
    1.72 +		[ -e "$pkgfile" ] || pkgfile="$namever-any.tazpkg"
    1.73  
    1.74  		if [ -n "$namever" ]; then
    1.75  			pkgsum=$(awk -vfile="$pkgfile" '{if($2==file)print $1}' $rep/packages.md5)
    1.76 @@ -436,12 +443,12 @@
    1.77  	# output: full path to the found package
    1.78  	# ROOT NOT USED
    1.79  
    1.80 -	local PKGS='/home/slitaz/packages' found='0'
    1.81 +	local PKGS='/home/slitaz/packages' found='0' i
    1.82  	[ -e "/etc/slitaz/cook.conf" ] && . /etc/slitaz/cook.conf
    1.83  
    1.84  	# Find local package
    1.85 -	pi="$PKGS/packages.info"
    1.86 -	[ -e "$pi" ] || pi="$PKGS/packages-$SLITAZ_ARCH.info"
    1.87 +	pi="$PKGS/packages-$SLITAZ_ARCH.info"
    1.88 +	[ -e "$pi" ] || pi="$PKGS/packages.info"
    1.89  
    1.90  	namever="$(awk -F$'\t' -vpkg="$1" '{
    1.91  		if ($1 == pkg) { printf("%s-%s", $1, $2); exit; }
    1.92 @@ -453,18 +460,16 @@
    1.93  		if (index(" " $10 " ", " " pkg " ")) { printf("%s-%s", $1, $2); exit; }
    1.94  	}' $pi)"
    1.95  
    1.96 -	if [ -n "$namever" ]; then
    1.97 -		pkgfile=$(find "$PKGS" -name "$namever-$SLITAZ_ARCH.tazpkg")
    1.98 -		[ -n "$pkgfile" ] ||
    1.99 -		pkgfile=$(find "$PKGS" -name "$namever-any.tazpkg")
   1.100 -	fi
   1.101 +	for i in $SLITAZ_ARCH any; do
   1.102 +		pkgfile="$PKGS/$namever-$i.tazpkg"
   1.103 +		if [ -e "$pkgfile" ]; then
   1.104 +			echo "$pkgfile"
   1.105 +			return
   1.106 +		fi
   1.107 +	done
   1.108  
   1.109 -	if [ -n "$pkgfile" -a -f "$pkgfile" ]; then
   1.110 -		echo "$pkgfile"
   1.111 -	else
   1.112 -		# Proceed to get package as usual (non-local)
   1.113 -		get_pkg "$1"
   1.114 -	fi
   1.115 +	# Proceed to get package as usual (non-local)
   1.116 +	get_pkg "$1"
   1.117  }
   1.118  
   1.119