Fix binarytree.isremote() to be consistent with binarytree.gettbz2() logic wrt partia...
authorZac Medico <zmedico@gentoo.org>
Sun, 24 Jun 2007 23:47:03 +0000 (23:47 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 24 Jun 2007 23:47:03 +0000 (23:47 -0000)
svn path=/main/trunk/; revision=7012

pym/portage/dbapi/bintree.py

index a2ce78b0c640654279f5f2ce04d72f7207b2e4d0..5151b8ae6d020b70161f46bcef766e1558e54c1b 100644 (file)
@@ -829,10 +829,15 @@ class binarytree(object):
                return os.path.join(self.pkgdir, mypath)
 
        def isremote(self, pkgname):
-               "Returns true if the package is kept remotely."
-               remote = pkgname in self._remotepkgs and \
-                       not os.path.exists(self.getname(pkgname))
-               return remote
+               """Returns true if the package is kept remotely and it has not been
+               downloaded (or it is only partially downloaded)."""
+               if pkgname not in self._remotepkgs:
+                       return False
+               pkg_path = self.getname(pkgname)
+               if os.path.exists(pkg_path) and \
+                       os.path.basename(pkg_path) not in self.invalids:
+                       return False
+               return True
 
        def get_use(self, pkgname):
                writemsg("deprecated use of binarytree.get_use()," + \
@@ -840,7 +845,8 @@ class binarytree(object):
                return self.dbapi.aux_get(pkgname, ["USE"])[0].split()
 
        def gettbz2(self, pkgname):
-               "fetches the package from a remote site, if necessary."
+               """Fetches the package from a remote site, if necessary.  Attempts to
+               resume if the file appears to be partially downloaded."""
                print "Fetching '"+str(pkgname)+"'"
                mysplit  = pkgname.split("/")
                tbz2name = mysplit[1]+".tbz2"