tazpkg rev 830

Module "info": fix packages.info absence; check available upgrades for installed packages.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Aug 12 13:49:16 2015 +0300 (2015-08-12)
parents 8b7afc16bba9
children 47b3b13dbf6b
files modules/info
line diff
     1.1 --- a/modules/info	Tue Aug 11 22:40:13 2015 +0200
     1.2 +++ b/modules/info	Wed Aug 12 13:49:16 2015 +0300
     1.3 @@ -36,28 +36,52 @@
     1.4  	. "$INSTALLED/$1/receipt"
     1.5  	STATE="$(_ 'installed package')"
     1.6  
     1.7 -elif [ -n "$(awk -F$'\t' -vp="$1" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then
     1.8 -	# Mirrored package given
     1.9 +	if [ -e "$PKGS_DB/packages.info" ]; then
    1.10 +		# Check if upgrade available
    1.11 +		NEWVER="$(awk -F$'\t' -vp="$1" '$1==p{print $2}' "$PKGS_DB/packages.info")"
    1.12 +		if [ "$VERSION" != "$NEWVER" ]; then
    1.13 +			VERSION="$VERSION $(_n '(new version "%s" available)' "$NEWVER")"
    1.14 +		else
    1.15 +			OLDMD5="$(awk -F$'\t' -vp="$1" '$1==p{print $9}' "$PKGS_DB/installed.info")"
    1.16 +			NEWMD5="$(awk -F$'\t' -vp="$1" '$1==p{print $9}' "$PKGS_DB/packages.info")"
    1.17 +			if [ "$OLDMD5" != "$NEWMD5" ]; then
    1.18 +				VERSION="$VERSION $(_n '(new build available)')"
    1.19 +			fi
    1.20 +		fi
    1.21 +	fi
    1.22  
    1.23 -	TMP_RECEIPT=$(mktemp)
    1.24 -	awk -F$'\t' -vp="$1" '$1==p{
    1.25 -		printf "PACKAGE=\"%s\"\n", $1
    1.26 -		printf "VERSION=\"%s\"\n", $2
    1.27 -		printf "CATEGORY=\"%s\"\n", $3
    1.28 -		printf "SHORT_DESC=\"%s\"\n", $4
    1.29 -		printf "WEB_SITE=\"%s\"\n", $5
    1.30 -		printf "TAGS=\"%s\"\n", $6
    1.31 -		printf "SIZES=\"%s\"\n", $7
    1.32 -		printf "DEPENDS=\"%s\"\n", $8
    1.33 -	}' "$PKGS_DB/packages.info" > $TMP_RECEIPT
    1.34 +elif [ -e "$PKGS_DB/packages.info" ]; then
    1.35 +	# Mirrored packages DB is available
    1.36 +	if [ -n "$(awk -F$'\t' -vp="$1" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then
    1.37 +		# Mirrored package given
    1.38  
    1.39 -	. $TMP_RECEIPT; rm $TMP_RECEIPT
    1.40 -	SIZES="$(echo $SIZES | tr ' ' '/')"
    1.41 -	STATE="$(_ 'mirrored package')"
    1.42 +		TMP_RECEIPT=$(mktemp)
    1.43 +		awk -F$'\t' -vp="$1" '$1==p{
    1.44 +			printf "PACKAGE=\"%s\"\n", $1
    1.45 +			printf "VERSION=\"%s\"\n", $2
    1.46 +			printf "CATEGORY=\"%s\"\n", $3
    1.47 +			printf "SHORT_DESC=\"%s\"\n", $4
    1.48 +			printf "WEB_SITE=\"%s\"\n", $5
    1.49 +			printf "TAGS=\"%s\"\n", $6
    1.50 +			printf "SIZES=\"%s\"\n", $7
    1.51 +			printf "DEPENDS=\"%s\"\n", $8
    1.52 +		}' "$PKGS_DB/packages.info" > $TMP_RECEIPT
    1.53  
    1.54 +		. $TMP_RECEIPT; rm $TMP_RECEIPT
    1.55 +		SIZES="$(echo $SIZES | tr ' ' '/')"
    1.56 +		STATE="$(_ 'mirrored package')"
    1.57 +	else
    1.58 +		newline
    1.59 +		_ 'Package "%s" not available.' "$1"
    1.60 +		newline
    1.61 +		exit 1
    1.62 +	fi
    1.63  else
    1.64 +	# Mirrored packages DB isn't available
    1.65  	newline
    1.66 -	_ 'Package "%s" not available.' "$1"
    1.67 +	longline "$(_ "No \"%s\" found to check for mirrored packages. For more \
    1.68 +results, please run \"%s\" once as root before searching." 'packages.info' \
    1.69 +'tazpkg recharge')"
    1.70  	newline
    1.71  	exit 1
    1.72  fi