def download(self, url, dest_dir, sha1=None): cache_key_fname = app.ContentCache.key_from_args(url, "fname") cache_key_data = app.ContentCache.key_from_args(url, "data") if self.FILE_CACHE_VALID: with app.ContentCache() as cc: fname = cc.get(cache_key_fname) cache_path = cc.get_cache_path(cache_key_data) if fname and isfile(cache_path): dst_path = join(dest_dir, fname) shutil.copy(cache_path, dst_path) return dst_path fd = FileDownloader(url, dest_dir) fd.start() if sha1: fd.verify(sha1) dst_path = fd.get_filepath() if not self.FILE_CACHE_VALID or getsize( dst_path) > PkgInstallerMixin.FILE_CACHE_MAX_SIZE: return dst_path with app.ContentCache() as cc: cc.set(cache_key_fname, basename(dst_path), self.FILE_CACHE_VALID) cc.set(cache_key_data, "DUMMY", self.FILE_CACHE_VALID) shutil.copy(dst_path, cc.get_cache_path(cache_key_data)) return dst_path
def download(self, url, dest_dir, sha1=None): cache_key_fname = app.ContentCache.key_from_args(url, "fname") cache_key_data = app.ContentCache.key_from_args(url, "data") if self.FILE_CACHE_VALID: with app.ContentCache() as cc: fname = cc.get(cache_key_fname) cache_path = cc.get_cache_path(cache_key_data) if fname and isfile(cache_path): dst_path = join(dest_dir, fname) shutil.copy(cache_path, dst_path) return dst_path with_progress = not app.is_disabled_progressbar() try: fd = FileDownloader(url, dest_dir) fd.start(with_progress=with_progress) except IOError as e: raise_error = not with_progress if with_progress: try: fd = FileDownloader(url, dest_dir) fd.start(with_progress=False) except IOError: raise_error = True if raise_error: click.secho( "Error: Please read http://bit.ly/package-manager-ioerror", fg="red", err=True) raise e if sha1: fd.verify(sha1) dst_path = fd.get_filepath() if not self.FILE_CACHE_VALID or getsize( dst_path) > PkgInstallerMixin.FILE_CACHE_MAX_SIZE: return dst_path with app.ContentCache() as cc: cc.set(cache_key_fname, basename(dst_path), self.FILE_CACHE_VALID) cc.set(cache_key_data, "DUMMY", self.FILE_CACHE_VALID) shutil.copy(dst_path, cc.get_cache_path(cache_key_data)) return dst_path
def download(url, dest_dir, sha1=None): fd = FileDownloader(url, dest_dir) fd.start() fd.verify(sha1) return fd.get_filepath()
def download(self, url, dest_dir, sha1=None): cache_key_fname = app.ContentCache.key_from_args(url, "fname") cache_key_data = app.ContentCache.key_from_args(url, "data") if self.FILE_CACHE_VALID: with app.ContentCache() as cc: fname = str(cc.get(cache_key_fname)) cache_path = cc.get_cache_path(cache_key_data) if fname and isfile(cache_path): dst_path = join(dest_dir, fname) shutil.copy(cache_path, dst_path) click.echo("Using cache: %s" % cache_path) return dst_path with_progress = not app.is_disabled_progressbar() try: fd = FileDownloader(url, dest_dir) fd.start(with_progress=with_progress) except IOError as e: raise_error = not with_progress if with_progress: try: fd = FileDownloader(url, dest_dir) fd.start(with_progress=False) except IOError: raise_error = True if raise_error: click.secho( "Error: Please read http://bit.ly/package-manager-ioerror", fg="red", err=True, ) raise e if sha1: fd.verify(sha1) dst_path = fd.get_filepath() if (not self.FILE_CACHE_VALID or getsize(dst_path) > PkgInstallerMixin.FILE_CACHE_MAX_SIZE): return dst_path with app.ContentCache() as cc: cc.set(cache_key_fname, basename(dst_path), self.FILE_CACHE_VALID) cc.set(cache_key_data, "DUMMY", self.FILE_CACHE_VALID) shutil.copy(dst_path, cc.get_cache_path(cache_key_data)) return dst_path
def download(url, dest_dir): fd = FileDownloader(url, dest_dir) fd.start() return fd.get_filepath()