# HG changeset patch # User Pascal Bellard # Date 1448187348 -3600 # Node ID 4b0ae74ec45cd184fdb479e1b779421db0b8a60a # Parent af67b2269d1ffdfd25de80c3bc858705ab639330 pkgs.cgi: show virtual package info diff -r af67b2269d1f -r 4b0ae74ec45c tazpanel/pkgs.cgi --- a/tazpanel/pkgs.cgi Thu Nov 19 04:07:05 2015 +0200 +++ b/tazpanel/pkgs.cgi Sun Nov 22 11:15:48 2015 +0100 @@ -227,16 +227,23 @@ } +select_package_icon() { + if [ -d "$INSTALLED/$1" ]; then + if grep -q "^$1$" "$BLOCKED" + then echo "pkgib" + else echo "pkgi" + fi + else echo "pkg" + fi +} + + # We need packages information for list and search parse_packages_info() { IFS=$'\t' while read PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS; do - data_icon="pkg" - if grep -q "^$PACKAGE"$'\t' "$PKGS_DB/installed.info"; then - data_icon="pkgi" - grep -q "^$PACKAGE$" "$BLOCKED" && data_icon="pkgib" - fi + data_icon="$(select_package_icon "$PACKAGE")" i18n_desc "$PACKAGE" cat < @@ -477,6 +484,14 @@ } +# Show a single package link + +show_package_link() { + echo -n "$1 " +} + + # Show links for "info" page show_info_links() { @@ -803,11 +818,7 @@ lzcat $(repo_list /files.list.lzma) | grep -Ei ": .*$(GET search)" | \ while read PACKAGE FILE; do PACKAGE=${PACKAGE%:} - data_icon="pkg" - if [ -d $INSTALLED/$PACKAGE ]; then - data_icon="pkgi" - grep -q "^$PACKAGE$" "$BLOCKED" && data_icon="pkgib" - fi + data_icon="$(select_package_icon "$PACKAGE")" cat < $(pkg_info_link "$PACKAGE" "$data_icon") @@ -943,19 +954,30 @@ elif [ -e "$PKGS_DB/packages.info" -a \ -n "$(awk -F$'\t' -vp="$pkg" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then STATE="$(_ 'mirrored package')" + elif grep -qs "^$pkg=" $PKGS_DB/packages.equiv; then + cat < +
+ $(_ 'Packages providing %s' "$pkg") +
+EOT + for pkg in $(sed "/^$pkg=/!d;s/^$pkg=//" $PKGS_DB/packages.equiv); do + name=${pkg#*:} + echo "

" + show_package_link "$name" + condition=${pkg%:*} + [ "$name" == "$condition" ] || + echo "($(_ "if") $(show_package_link "$condition")$(_ "is installed")) " + echo "

" + done + xhtml_footer; exit 0 else msg err "$(_ 'Package "%s" not available.' "$pkg")" xhtml_footer; exit 0 fi # Symbolic icon - if [ -d "$INSTALLED/$pkg" ]; then - if grep -q "^$pkg$" "$BLOCKED" - then data_icon="pkgib" - else data_icon="pkgi" - fi - else data_icon="pkg" - fi + data_icon="$(select_package_icon "$pkg")" cat <