diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2013-02-19 17:45:42 +0000 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2013-02-21 11:46:08 +0000 |
commit | ed79cb01302fbfda0484c7371e5a364d0d872e74 (patch) | |
tree | aa8305318f36ee291d982b1c48449cbe354ee17e /morphlib | |
parent | 29b8977ac03ac9ce0c178ce6febd0a5f27288001 (diff) | |
download | morph-ed79cb01302fbfda0484c7371e5a364d0d872e74.tar.gz |
Make BuildCommand report current and total build steps
This adds a [Build 1/12765] to the output of the building of each
artifact. This makes it easier to see how much work there might
still be remaining.
Diffstat (limited to 'morphlib')
-rwxr-xr-x | morphlib/app.py | 8 | ||||
-rw-r--r-- | morphlib/buildcommand.py | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/morphlib/app.py b/morphlib/app.py index 47288a6a..eaba5dd9 100755 --- a/morphlib/app.py +++ b/morphlib/app.py @@ -173,6 +173,9 @@ class Morph(cliapp.Application): raise morphlib.Error( 'System time is far in the past, please set your system clock') + def setup(self): + self.status_prefix = '' + def process_args(self, args): self.check_time() @@ -342,11 +345,14 @@ class Morph(cliapp.Application): * ``error`` should be true when it is an error message All other keywords are ignored unless embedded in ``msg``. + + The ``self.status_prefix`` string is prepended to the output. + It is set to the empty string by default. ''' assert 'msg' in kwargs - text = kwargs['msg'] % kwargs + text = self.status_prefix + (kwargs['msg'] % kwargs) error = kwargs.get('error', False) chatty = kwargs.get('chatty', False) diff --git a/morphlib/buildcommand.py b/morphlib/buildcommand.py index 27fec4da..d6d8dca6 100644 --- a/morphlib/buildcommand.py +++ b/morphlib/buildcommand.py @@ -51,7 +51,7 @@ class BuildCommand(object): artifact = self.get_artifact_object(repo_name, ref, filename) self.build_in_order(artifact) - self.app.status(msg='Build ends successfully', chatty=True) + self.app.status(msg='Build ends successfully') def new_build_env(self): '''Create a new BuildEnvironment instance.''' @@ -181,8 +181,13 @@ class BuildCommand(object): self.app.status(msg='Building according to build ordering', chatty=True) - for a in artifact.walk(): + artifacts = artifact.walk() + old_prefix = self.app.status_prefix + for i, a in enumerate(artifacts): + self.app.status_prefix = ( + old_prefix + '[Build %d/%d] ' % ((i+1), len(artifacts))) self.build_artifact(a) + self.app.status_prefix = old_prefix def build_artifact(self, artifact): '''Build one artifact. |