From c0d6d11f83e65e54bb04584c509aa1a9496667a1 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 3 May 2021 09:06:06 +0200 Subject: status.php: viel hübscher MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- status.php | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 15 deletions(-) diff --git a/status.php b/status.php index 2b4e8a9..349d131 100644 --- a/status.php +++ b/status.php @@ -29,33 +29,87 @@ $ist = array_map('parse', $ist); $soll = array_map('parse', $soll); $pkgs = array(); +$archs = array(); foreach($ist as $i) { - $pkgs[$i["pkgname"]][$i["arch"]]["ist"] = $i; + if ($i["pkgname"] != "") + $pkgs[$i["pkgname"]][$i["arch"]]["ist"] = $i; } + foreach($soll as $i) { - $pkgs[$i["pkgname"]][$i["arch"]]["soll"] = $i; + if ($i["pkgname"] != "") + $pkgs[$i["pkgname"]][$i["arch"]]["soll"] = $i; +} + +$archs = array("any", "armv6h", "armv7h", "aarch64", "i486", "i686", "pentium4", "x86_64"); + +function evaluate_package($pkg) { + if (!array_key_exists("ist", $pkg)) { + $result["up-to-date"] = false; + $result["version"] = $pkg["soll"]["pkgver"] . "-" . $pkg["soll"]["pkgrel"]; + $result["pkgname"] = $pkg["soll"]["pkgname"]; + } else if (!array_key_exists("soll", $pkg)) { + $result["up-to-date"] = false; + $result["version"] = $pkg["ist"]["pkgver"] . "-" . $pkg["ist"]["pkgrel"]; + $result["pkgname"] = $pkg["ist"]["pkgname"]; + } else { + $result["up-to-date"] = ($pkg["ist"]["filename"] == $pkg["soll"]["filename"]); + $result["version"] = $pkg["ist"]["pkgver"] . "-" . $pkg["ist"]["pkgrel"]; + $result["pkgname"] = $pkg["ist"]["pkgname"]; + } + return $result; +} + +function evaluate_apackage($apkg) { + return array_map('evaluate_package', $apkg); } +$pkgs = array_map('evaluate_apackage', $pkgs); + +function any_outdated($pkgs) { + foreach ($pkgs as $pkg) + if (!$pkg["up-to-date"]) + return true; + return false; +} + +function pkg_compare($p1, $p2) { + $p1o = (any_outdated($p1) ? 1 : -1); + $p2o = (any_outdated($p2) ? 1 : -1); + if ($p1o != $p2o) + return $p2o; + $p1n = $p1[array_key_first($p1)]["pkgname"]; + $p2n = $p2[array_key_first($p2)]["pkgname"]; + return strcmp($p1n, $p2n); +} + +uasort($pkgs, 'pkg_compare'); + ?> -" . $arch . ""; +print "\n"; foreach ($pkgs as $pkgname => $pkg) { - print "\n"; - foreach ($pkg as $arch => $apkg) { - print "\n"; + print ""; + foreach ($archs as $arch) { + if (!array_key_exists($arch, $pkg)) { + print ""; + } else { + if ($pkg[$arch]["up-to-date"]) + $farbe = "#008000"; + else + $farbe = "#c00000"; + print ""; + } } + print "\n"; } ?> -- cgit v1.2.3-54-g00ecf
pkgname
" . $pkgname . "
" . $arch . ""; - if ($apkg["ist"]["filename"] == $apkg["soll"]["filename"]) - $farbe = "#008000"; - else - $farbe = "#c00000"; - print ""; - print $apkg["ist"]["filename"]; - print ""; - print $apkg["soll"]["filename"]; - print "
" . $pkgname . "-"; + print $pkg[$arch]["version"]; + print "