summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-06-15 15:02:39 +0100
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-06-15 15:02:39 +0100
commitf0fe7254f66dda4e7f072e4136a0e1fbcb3f2f3d (patch)
tree3220629d35d09e1ec31c7fb82008c1afa5cdbf54
parent9d857e4f7bbb0c4048625bb9e4c0aa89e918463f (diff)
downloadmorph-f0fe7254f66dda4e7f072e4136a0e1fbcb3f2f3d.tar.gz
Return list of built artifacts from builder
-rw-r--r--morphlib/builder2.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/morphlib/builder2.py b/morphlib/builder2.py
index 4191c32a..e534168d 100644
--- a/morphlib/builder2.py
+++ b/morphlib/builder2.py
@@ -254,9 +254,10 @@ class ChunkBuilder(BuilderBase):
self.umount_proc(mounted)
raise
self.umount_proc(mounted)
- self.assemble_chunk_artifacts(destdir)
+ built_artifacts = self.assemble_chunk_artifacts(destdir)
self.save_build_times()
+ return built_artifacts
def mount_proc(self): # pragma: no cover
logging.debug('Mounting /proc in staging area')
@@ -352,6 +353,7 @@ class ChunkBuilder(BuilderBase):
self.runcmd(['sh', '-c', cmd], cwd=relative_builddir)
def assemble_chunk_artifacts(self, destdir): # pragma: no cover
+ built_artifacts = []
with self.build_watch('create-chunks'):
specs = self.artifact.source.morphology['chunks']
if len(specs) == 0:
@@ -370,11 +372,13 @@ class ChunkBuilder(BuilderBase):
logging.debug('assembling chunk %s' % artifact_name)
logging.debug('assembling into %s' % f.name)
morphlib.bins.create_chunk(destdir, f, patterns)
+ built_artifacts.append(artifact)
files = os.listdir(destdir)
if files:
raise Exception('DESTDIR %s is not empty: %s' %
(destdir, files))
+ return built_artifacts
class StratumBuilder(BuilderBase):
@@ -413,6 +417,7 @@ class StratumBuilder(BuilderBase):
with self.local_artifact_cache.put(artifact) as f:
json.dump([c.basename() for c in constituents], f)
self.save_build_times()
+ return [artifact]
class SystemBuilder(BuilderBase): # pragma: no cover
@@ -476,6 +481,7 @@ class SystemBuilder(BuilderBase): # pragma: no cover
handle.close()
self.save_build_times()
+ return [self.artifact]
def _create_image(self, image_name):
logging.debug('Creating disk image %s' % image_name)
@@ -658,6 +664,7 @@ class Builder(object): # pragma: no cover
self.max_jobs, self.setup_proc)
logging.debug('Builder.build: artifact %s with %s' %
(artifact.name, repr(o)))
- o.build_and_cache()
+ built_artifacts = o.build_and_cache()
logging.debug('Builder.build: done')
+ return built_artifacts