[gnome-ostree] build: Add --status-json-file argument
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-ostree] build: Add --status-json-file argument
- Date: Thu, 16 Aug 2012 13:50:20 +0000 (UTC)
commit 833e6b84f7bf87161109ea1586c45bb5f28d50c3
Author: Colin Walters <walters verbum org>
Date: Thu Aug 16 08:45:56 2012 -0400
build: Add --status-json-file argument
This can be used by the web interface.
src/ostbuild/pyostbuild/builtin_build.py | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/src/ostbuild/pyostbuild/builtin_build.py b/src/ostbuild/pyostbuild/builtin_build.py
index 1350b7d..ce89d78 100755
--- a/src/ostbuild/pyostbuild/builtin_build.py
+++ b/src/ostbuild/pyostbuild/builtin_build.py
@@ -114,6 +114,9 @@ class OstbuildBuild(builtins.Builtin):
def _build_one_component(self, component, architecture):
basename = component['name']
+ self._write_status({'status': 'building',
+ 'target': basename})
+
buildname = '%s/%s/%s' % (self.snapshot['prefix'], basename, architecture)
build_ref = 'components/%s' % (buildname, )
@@ -318,11 +321,24 @@ class OstbuildBuild(builtins.Builtin):
os.unlink(related_tmppath)
shutil.rmtree(compose_rootdir)
+ def _write_status(self, data):
+ if not self.args.status_json_path:
+ return
+ (fd, temppath) = tempfile.mkstemp(suffix='.tmp', prefix='status-json-',
+ dir=os.path.dirname(self.args.status_json_path))
+ os.close(fd)
+ f = open(temppath, 'w')
+ json.dump(data, f, indent=4, sort_keys=True)
+ f.close()
+ os.rename(temppath, self.args.status_json_path)
+
def execute(self, argv):
parser = argparse.ArgumentParser(description=self.short_description)
parser.add_argument('--prefix')
parser.add_argument('--src-snapshot')
parser.add_argument('--patches-path')
+ parser.add_argument('--status-json-path',
+ help="Write data to this JSON file as build progresses")
parser.add_argument('--force-rebuild', action='store_true')
parser.add_argument('--skip-vcs-matches', action='store_true')
parser.add_argument('--no-compose', action='store_true')
@@ -339,6 +355,8 @@ class OstbuildBuild(builtins.Builtin):
log("Using source snapshot: %s" % (os.path.basename(self.snapshot_path), ))
+ self._write_status({'state': 'build-starting'})
+
self.buildopts = BuildOptions()
self.buildopts.shell_on_failure = args.shell_on_failure
self.buildopts.force_rebuild = args.force_rebuild
@@ -413,6 +431,9 @@ class OstbuildBuild(builtins.Builtin):
'runtime': runtime_ref,
'devel': buildroot_ref}
+ self._write_status({'status': 'composing',
+ 'target': target['name']})
+
if target_component_type == 'runtime':
target_components = runtime_components
else:
@@ -438,4 +459,6 @@ class OstbuildBuild(builtins.Builtin):
for target in targets_list:
self._compose_one_target(target, component_build_revs)
+ self._write_status({'status': 'complete'})
+
builtins.register(OstbuildBuild)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]