summaryrefslogtreecommitdiff
path: root/morphlib/builder2.py
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2012-10-26 12:35:16 +0100
committerSam Thursfield <sam.thursfield@codethink.co.uk>2012-10-26 15:09:36 +0100
commitd57a186e0ee06133843e0674cb0a883c05457761 (patch)
treec1b9f0022c266e60d9ce1aeeb9e0b6e306f293cb /morphlib/builder2.py
parent15243493b945d87bc56d625b722060dd10799d15 (diff)
downloadmorph-d57a186e0ee06133843e0674cb0a883c05457761.tar.gz
Write /etc/os-release in system images
This is intended to for human consumption, with the full set of metadata in /baserock/system-artifact-name.meta. It currently lists system name, the symbolic ref of the system morphology and build date.
Diffstat (limited to 'morphlib/builder2.py')
-rw-r--r--morphlib/builder2.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/morphlib/builder2.py b/morphlib/builder2.py
index d3768054..0de0ebff 100644
--- a/morphlib/builder2.py
+++ b/morphlib/builder2.py
@@ -14,6 +14,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+import datetime
import json
import logging
import os
@@ -541,6 +542,18 @@ class SystemKindBuilder(BuilderBase): # pragma: no cover
ldconfig(self.app.runcmd, path)
+ def write_metadata(self, instdir, artifact_name):
+ BuilderBase.write_metadata(self, instdir, artifact_name)
+
+ os_release_file = os.path.join(instdir, 'etc', 'os-release')
+ if not os.path.exists(os.path.dirname(os_release_file)):
+ os.makedirs(os.path.dirname(os_release_file))
+ with morphlib.savefile.SaveFile(os_release_file, 'w') as f:
+ f.write('Baserock %s, built from ref %s on %s\n' %
+ (self.artifact.source.morphology['name'],
+ self.artifact.source.original_ref,
+ datetime.date.today()))
+
def create_fstab(self, path):
'''Create an /etc/fstab inside a system tree.
@@ -615,7 +628,7 @@ class SystemBuilder(BuilderBase): # pragma: no cover
system_kind, self.args, self.kwargs)
logging.debug('Building system with %s' % repr(builder))
self.app.status(msg='Building system %(system_name)s',
- system_name=self.artifact.name)
+ system_name=self.artifact.source.morphology['name'])
return builder.build_and_cache()