]> git.ipfire.org Git - pakfire.git/commitdiff
Allow removing packages
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 2 Nov 2017 18:56:44 +0000 (19:56 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 2 Nov 2017 18:56:44 +0000 (19:56 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/base.py
src/pakfire/cli.py

index 74b9d0fb0d2a1d3a8fa68bc48e3f354aaf1cfcd0..2b3e26c20f7e110514c2143f37adaf97bec28fe3 100644 (file)
@@ -232,6 +232,15 @@ class PakfireContext(object):
                """
                raise NotImplementedError
 
+       def erase(self, pkgs, **kwargs):
+               request = _pakfire.Request(self.pakfire.pool)
+
+               for pkg in pkgs:
+                       relation = _pakfire.Relation(self.pakfire.pool, pkg)
+                       request.erase(relation)
+
+               return request.solve(**kwargs)
+
        def update(self, reqs=None, excludes=None, **kwargs):
                request = _pakfire.Request(self.pakfire.pool)
 
@@ -296,32 +305,6 @@ class PakfireContext(object):
 
                t.run()
 
-       def remove(self, pkgs, logger=None):
-               if logger is None:
-                       logger = logging.getLogger("pakfire")
-
-               # Create a new request.
-               request = self.pakfire.pool.create_request(remove=pkgs)
-
-               # Solve the request.
-               solver = self.pakfire.pool.solve(request, allow_uninstall=True)
-               assert solver.status is True
-
-               # Create the transaction.
-               t = transaction.Transaction.from_solver(self.pakfire, solver)
-               t.dump()
-
-               if not t:
-                       log.info(_("Nothing to do"))
-                       return
-
-               # Ask the user if okay.
-               if not t.cli_yesno():
-                       return
-
-               # Process the transaction.
-               t.run()
-
 
 class PakfireBuilder(Pakfire):
        mode = "builder"
index c4e470a66ad2631c6165c98f5dccb343ec17d46b..a4cc5310715bf808a18a4a7b1f8033a88889701e 100644 (file)
@@ -346,7 +346,7 @@ class Cli(object):
 
        def handle_remove(self, ns):
                with self.pakfire(ns) as p:
-                       transaction = p.remove(ns.package)
+                       transaction = p.erase(ns.package)
 
                        self._execute_transaction(transaction)