diff options
Diffstat (limited to 'examples/librpm.php')
-rw-r--r-- | examples/librpm.php | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/examples/librpm.php b/examples/librpm.php index 7d36f2d..16fdc78 100644 --- a/examples/librpm.php +++ b/examples/librpm.php @@ -94,7 +94,7 @@ abstract class Common { class File extends Common { public function __construct($path) { - $info = rpminfo($path, true, $error); + $info = \rpminfo($path, true, $error); if ($error) { throw new \RuntimeException($error); @@ -114,7 +114,7 @@ class File extends Common { class Package extends Common { public function __construct($name, $index=0) { - $info = rpmdbinfo($name, true); + $info = \rpmdbinfo($name, true); if (!$info) { throw new \RuntimeException("$name not found"); @@ -126,8 +126,47 @@ class Package extends Common { } } +/** + * Find packages which provides something or own a file + * + * $a = \Remi\RPM\WhatProvides("php-redis"); + * print_r($a[0]->NEVR); + * + * $a = \Remi\RPM\WhatProvides("/usr/bin/php"); + * print_r($a[0]->NEVR); + **/ +function WhatProvides($crit) { + if (file_exists($crit)) { + $a = \rpmdbsearch($crit, RPM_TAG_INSTFILENAMES); + } else { + $a = \rpmdbsearch($crit, RPM_TAG_PROVIDENAME); + } + $r = []; + if (is_array($a)) { + foreach($a as $i) { + $r[] = new Package($i['Name']); + } + } + return $r; +} +/** + * Find packages which requires something + * + * $a = \Remi\RPM\WhatRequires("php-common"); + * print_r($a[0]->NEVRA); + **/ +function WhatRequires($crit) { + $a = \rpmdbsearch($crit, RPM_TAG_REQUIRENAME); + $r = []; + if (is_array($a)) { + foreach($a as $i) { + $r[] = new Package($i['Name']); + } + } + return $r; +} /* $a = new File(dirname(__DIR__).'/tests/bidon.rpm'); $a = new Package('phpunit7'); |