summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-06-25 02:42:54 +0000
committerZac Medico <zmedico@gentoo.org>2007-06-25 02:42:54 +0000
commit2996589fcbe536878e19c0b0113a0082291029ae (patch)
treeab9a3d537dfab5df87d6feea8362749ee0f61a06 /pym/portage.py
parentf1ca0e56fa470a03d655d82c90e87a9953af42c3 (diff)
downloadportage-2996589fcbe536878e19c0b0113a0082291029ae.tar.gz
portage-2996589fcbe536878e19c0b0113a0082291029ae.tar.bz2
portage-2996589fcbe536878e19c0b0113a0082291029ae.zip
For bug #175891, support ${FETCHCOMMAND}_${PROTOCOL} in binarytree.gettbz2(). (trunk r7016)
svn path=/main/branches/2.1.2/; revision=7017
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 5dca355b7..99ae092d6 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -6805,10 +6805,12 @@ class binarytree(object):
print "Fetching '"+str(pkgname)+"'"
mysplit = pkgname.split("/")
tbz2name = mysplit[1]+".tbz2"
+ resume = False
if not self.isremote(pkgname):
if (tbz2name not in self.invalids):
return
else:
+ resume = True
writemsg("Resuming download of this tbz2, but it is possible that it is corrupt.\n",
noiselevel=-1)
mydest = self.pkgdir+"/All/"
@@ -6816,9 +6818,16 @@ class binarytree(object):
os.makedirs(mydest, 0775)
except (OSError, IOError):
pass
- return getbinpkg.file_get(
- self.settings["PORTAGE_BINHOST"] + "/" + tbz2name,
- mydest, fcmd=self.settings["RESUMECOMMAND"])
+ from urlparse import urljoin, urlparse
+ url = urljoin(self.settings["PORTAGE_BINHOST"], tbz2name)
+ protocol = urlparse(url)[0]
+ fcmd_prefix = "FETCHCOMMAND"
+ if resume:
+ fcmd_prefix = "RESUMECOMMAND"
+ fcmd = self.settings.get(fcmd_prefix + "_" + protocol.upper())
+ if not fcmd:
+ fcmd = self.settings.get(fcmd_prefix)
+ return getbinpkg.file_get(url, mydest, fcmd=fcmd)
def getslot(self,mycatpkg):
"Get a slot for a catpkg; assume it exists."