tazpkg rev 831

pkgs.cgi: show if equivalent package installed (in the package info: depends, suggested)
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Aug 13 00:42:38 2015 +0300 (2015-08-13)
parents 7acf0290bdb2
children 48496086d8c9
files tazpanel/pkgs.cgi
line diff
     1.1 --- a/tazpanel/pkgs.cgi	Wed Aug 12 13:49:16 2015 +0300
     1.2 +++ b/tazpanel/pkgs.cgi	Thu Aug 13 00:42:38 2015 +0300
     1.3 @@ -83,15 +83,39 @@
     1.4  	*\ status\ * )
     1.5  		# Show package status
     1.6  		pkg=$(GET pkg)
     1.7 -		class='pkg'
     1.8 +		orig_pkg=''
     1.9  
    1.10  		if grep -q "^$pkg"$'\t' $PKGS_DB/installed.info; then
    1.11 +			# Package installed
    1.12  			class='pkgi'
    1.13 -			grep -q "^$pkg$" $PKGS_DB/blocked-packages.list && class='pkgib'
    1.14 +		else
    1.15 +			# Package not installed
    1.16 +			class='pkg'
    1.17 +			equivs=$(grep "^$pkg=" $PKGS_DB/packages.equiv)
    1.18 +			if [ -n "$equivs" ]; then
    1.19 +				for equiv in ${equivs#*=}; do
    1.20 +					case $equiv in
    1.21 +						*:*)
    1.22 +							if grep -q "^${equiv%:*}"$'\t' "$PKGS_DB/installed.info" &&
    1.23 +							   grep -q "^${equiv#*:}"$'\t' "$PKGS_DB/installed.info"; then
    1.24 +								# Equivalent installed
    1.25 +								orig_pkg="$pkg→"; pkg="${equiv#*:}"; class='pkgi'; break
    1.26 +							fi;;
    1.27 +						*)
    1.28 +							if grep -q "^$equiv"$'\t' "$PKGS_DB/installed.info"; then
    1.29 +								# Equivalent installed
    1.30 +								orig_pkg="$pkg→"; pkg="$equiv"; class='pkgi'; break
    1.31 +							fi;;
    1.32 +					esac
    1.33 +				done
    1.34 +			fi
    1.35  		fi
    1.36  
    1.37 +		# Installed and blocked?
    1.38 +		[ "$class" == 'pkgi' ] && grep -q "^$pkg$" $PKGS_DB/blocked-packages.list && class='pkgib'
    1.39 +
    1.40  		header
    1.41 -		echo -n "<a data-icon=\"$class\" href=\"?info=${pkg//+/%2B}\">$pkg</a>"
    1.42 +		echo -n "<a data-icon=\"$class\" href=\"?info=${pkg//+/%2B}\">$orig_pkg$pkg</a>"
    1.43  		exit 0 ;;
    1.44  
    1.45