mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-13 08:01:09 +00:00
archive: verify and use existing already-downloaded files
This commit is contained in:
parent
8682c44957
commit
eaa07014e0
@ -452,11 +452,25 @@ class SourcePackage(object):
|
||||
(downloaded / 1024.0 / 1024,
|
||||
size / 1024.0 / 1024))
|
||||
|
||||
def _verify_file(self, pathname, dscverify=False, sha1sum=False, sha256sum=False, size=0):
|
||||
if not os.path.exists(pathname):
|
||||
return False
|
||||
if size and size != os.path.getsize(pathname):
|
||||
return False
|
||||
if dscverify and not self.dsc.verify_file(pathname):
|
||||
return False
|
||||
if sha1sum and not verify_file_checksum(pathname, 'SHA1', sha1sum, size):
|
||||
return False
|
||||
if sha256sum and not verify_file_checksum(pathname, 'SHA256', sha256sum, size):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _download_file(self, url, filename, size, dscverify=False, sha1sum=None, sha256sum=None):
|
||||
"Download url to filename in workdir."
|
||||
pathname = os.path.join(self.workdir, filename)
|
||||
if dscverify and self.dsc.verify_file(pathname):
|
||||
Logger.debug('Using existing %s', filename)
|
||||
|
||||
if self._verify_file(pathname, dscverify, sha1sum, sha256sum, size):
|
||||
Logger.debug('Using existing file %s', filename)
|
||||
return True
|
||||
|
||||
if urlparse(url).scheme in ["", "file"]:
|
||||
@ -487,14 +501,7 @@ class SourcePackage(object):
|
||||
if e.code == 404:
|
||||
return False
|
||||
raise e
|
||||
|
||||
if dscverify and not self.dsc.verify_file(pathname):
|
||||
return False
|
||||
if sha1sum and not verify_file_checksum(pathname, 'SHA1', sha1sum, size):
|
||||
return False
|
||||
if sha256sum and not verify_file_checksum(pathname, 'SHA256', sha256sum, size):
|
||||
return False
|
||||
return True
|
||||
return self._verify_file(pathname, dscverify, sha1sum, sha256sum, size)
|
||||
|
||||
def pull(self):
|
||||
"Pull into workdir"
|
||||
|
Loading…
x
Reference in New Issue
Block a user