PackageUninstall: return early if pkg is missing
authorZac Medico <zmedico@gentoo.org>
Wed, 25 May 2011 00:45:06 +0000 (17:45 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 May 2011 04:40:30 +0000 (21:40 -0700)
pym/_emerge/PackageUninstall.py

index 0e913071398e155136fdb978dfaf11ed02d9ce06..c846dab7768e2af2bfddd4a5f1dc01928e05c0c5 100644 (file)
@@ -15,6 +15,16 @@ class PackageUninstall(CompositeTask):
 
        def _start(self):
 
+               vardb = self.pkg.root_config.trees["vartree"].dbapi
+               dbdir = vardb.getpath(self.pkg.cpv)
+               if not os.path.exists(dbdir):
+                       # Apparently the package got uninstalled
+                       # already, so we can safely return early.
+                       self.returncode = os.EX_OK
+                       self.wait()
+                       return
+
+               self.settings.setcpv(self.pkg)
                retval, pkgmap = _unmerge_display(self.pkg.root_config,
                        self.opts, "unmerge", [self.pkg.cpv], clean_delay=0,
                        writemsg_level=self._writemsg_level)