From 7adc0cf86d301028e268f1803ee117bdd74586d5 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 25 Jan 2018 13:30:20 +0100 Subject: New function: array rpminfo(string path [, bool full ]); --- examples/repomanage.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'examples') diff --git a/examples/repomanage.php b/examples/repomanage.php index 8428118..7682c3d 100644 --- a/examples/repomanage.php +++ b/examples/repomanage.php @@ -44,19 +44,20 @@ if (is_dir($rpms)) { } $tree = []; -$handle = popen('rpm -qp --qf "%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH} %{NEVR}\n" ' . $rpms . "/*.rpm", "r"); -while ($line = fgets($handle)) { - $tab = explode(' ', trim($line)); - if (count($tab) == 6) { - $tree[$tab[4]][$tab[0]][] = [ - 'name' => $tab[0], - 'path' => $tab[5], - 'evr' => "${tab[1]}:${tab[2]}-${tab[3]}", - ]; +foreach(glob("$rpms/*.rpm") as $rpm) { + $info = rpminfo($rpm); + if (is_array($info)) { + $info['path'] = $rpm; + $info['evr'] = $info['Version'] . '-' . $info['Release']; + if (isset($info['Epoch'])) { + $info['evr'] = $info['Epoch'] . ":" . $info['evr']; + } + $tree[$info['Name']][$info['Arch']][] = $info; } else { - echo "Ignore $line\n"; + echo "Skip $rpm\n"; } } + foreach($tree as $arch => $subtree) { foreach ($subtree as $name => $versions) { if (count($versions) > $keep) { -- cgit