Extend `ReleaseDownload` source to be composed of several archives.
This commit is contained in:
parent
45c55013bd
commit
8cf6c39d11
|
@ -110,22 +110,28 @@ class NoopSource(Source):
|
||||||
class ReleaseDownload(Source):
|
class ReleaseDownload(Source):
|
||||||
archive_top_dir = None
|
archive_top_dir = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def archives(self):
|
||||||
|
return (self.archive, )
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def extract_path(self):
|
def extract_path(self):
|
||||||
return pj(neutralEnv('source_dir'), self.source_dir)
|
return pj(neutralEnv('source_dir'), self.source_dir)
|
||||||
|
|
||||||
def _download(self, context):
|
def _download(self, context):
|
||||||
context.try_skip(neutralEnv('archive_dir'), self.full_name)
|
context.try_skip(neutralEnv('archive_dir'), self.full_name)
|
||||||
neutralEnv('download')(self.archive)
|
for archive in self.archives:
|
||||||
|
neutralEnv('download')(archive)
|
||||||
|
|
||||||
def _extract(self, context):
|
def _extract(self, context):
|
||||||
context.try_skip(self.extract_path)
|
context.try_skip(self.extract_path)
|
||||||
if os.path.exists(self.extract_path):
|
if os.path.exists(self.extract_path):
|
||||||
shutil.rmtree(self.extract_path)
|
shutil.rmtree(self.extract_path)
|
||||||
extract_archive(pj(neutralEnv('archive_dir'), self.archive.name),
|
for archive in self.archives:
|
||||||
neutralEnv('source_dir'),
|
extract_archive(pj(neutralEnv('archive_dir'), archive.name),
|
||||||
topdir=self.archive_top_dir,
|
neutralEnv('source_dir'),
|
||||||
name=self.source_dir)
|
topdir=self.archive_top_dir,
|
||||||
|
name=self.source_dir)
|
||||||
|
|
||||||
def prepare(self):
|
def prepare(self):
|
||||||
self.command('download', self._download)
|
self.command('download', self._download)
|
||||||
|
|
Loading…
Reference in New Issue