]> git.ipfire.org Git - pakfire.git/commitdiff
pakfire-builder: Make provides work again
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Nov 2022 13:24:23 +0000 (13:24 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Nov 2022 13:24:23 +0000 (13:24 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/scripts/pakfire-builder.in

index 2be89b1e3384c0a9b55780b304a5de0929c6959a..25e3de7c77700c8768483788f3f5eeb9e2f2e02c 100644 (file)
@@ -91,7 +91,7 @@ class Cli(object):
                        help=_("Get a list of packages that provide a given file or feature"))
                provides.add_argument("pattern", nargs="+",
                        help=_("File or feature to search for"))
-               #provides.set_defaults(func=self._provides)
+               provides.set_defaults(func=self._provides)
 
                # requires
                requires = subparsers.add_parser("requires",
@@ -260,6 +260,23 @@ class Cli(object):
                        s = pkg.dump(long=True)
                        print(s)
 
+       def _provides(self, ns):
+               """
+                       Searches for all packages that have a certain provides
+               """
+               p = self.pakfire(ns)
+
+               packages = set()
+
+               # Walk through all patterns and find all packages
+               for pattern in ns.pattern:
+                       packages.update(p.whatprovides(pattern))
+
+               # Print all packages
+               for package in sorted(packages):
+                       s = package.dump(long=True)
+                       print(s)
+
        def _repolist(self, ns):
                """
                        List all repositories