# HG changeset patch # User Aleksej Bobylev # Date 1439415758 -10800 # Node ID 47b3b13dbf6bec2a6488c9613a3208d93362e47d # Parent 7acf0290bdb2c062adbdaea51558af2ed1e71ca5 pkgs.cgi: show if equivalent package installed (in the package info: depends, suggested) diff -r 7acf0290bdb2 -r 47b3b13dbf6b tazpanel/pkgs.cgi --- a/tazpanel/pkgs.cgi Wed Aug 12 13:49:16 2015 +0300 +++ b/tazpanel/pkgs.cgi Thu Aug 13 00:42:38 2015 +0300 @@ -83,15 +83,39 @@ *\ status\ * ) # Show package status pkg=$(GET pkg) - class='pkg' + orig_pkg='' if grep -q "^$pkg"$'\t' $PKGS_DB/installed.info; then + # Package installed class='pkgi' - grep -q "^$pkg$" $PKGS_DB/blocked-packages.list && class='pkgib' + else + # Package not installed + class='pkg' + equivs=$(grep "^$pkg=" $PKGS_DB/packages.equiv) + if [ -n "$equivs" ]; then + for equiv in ${equivs#*=}; do + case $equiv in + *:*) + if grep -q "^${equiv%:*}"$'\t' "$PKGS_DB/installed.info" && + grep -q "^${equiv#*:}"$'\t' "$PKGS_DB/installed.info"; then + # Equivalent installed + orig_pkg="$pkg→"; pkg="${equiv#*:}"; class='pkgi'; break + fi;; + *) + if grep -q "^$equiv"$'\t' "$PKGS_DB/installed.info"; then + # Equivalent installed + orig_pkg="$pkg→"; pkg="$equiv"; class='pkgi'; break + fi;; + esac + done + fi fi + # Installed and blocked? + [ "$class" == 'pkgi' ] && grep -q "^$pkg$" $PKGS_DB/blocked-packages.list && class='pkgib' + header - echo -n "$pkg" + echo -n "$orig_pkg$pkg" exit 0 ;;