summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2016-01-26 16:10:52 -0500
committerDaniil Baturin <daniil@baturin.org>2016-01-26 16:10:52 -0500
commitcddc611ae3a6da15aaa2bded568209bb3eca27de (patch)
tree943fe6c81594594361eb8afc7fd1b030748a5579 /scripts
parentb0c41b26b9435a3a834bee7cc16a1ae1cb03a5fa (diff)
downloadvyos-build-cddc611ae3a6da15aaa2bded568209bb3eca27de.tar.gz
vyos-build-cddc611ae3a6da15aaa2bded568209bb3eca27de.zip
Add a build step for generating version files.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/defaults.py3
-rwxr-xr-xscripts/make-version-file66
2 files changed, 69 insertions, 0 deletions
diff --git a/scripts/defaults.py b/scripts/defaults.py
index beef4a7a..b9a3f255 100644
--- a/scripts/defaults.py
+++ b/scripts/defaults.py
@@ -28,3 +28,6 @@ DEBIAN_DISTRIBUTION = 'jessie'
PBUILDER_CONFIG = os.path.join(BUILD_DIR, 'pbuilderrc')
PBUILDER_DIR = os.path.join(BUILD_DIR, 'pbuilder')
+
+LB_CONFIG_DIR = os.path.join(BUILD_DIR, 'config')
+CHROOT_INCLUDES_DIR = os.path.join(LB_CONFIG_DIR, 'includes.chroot')
diff --git a/scripts/make-version-file b/scripts/make-version-file
new file mode 100755
index 00000000..fcc399f8
--- /dev/null
+++ b/scripts/make-version-file
@@ -0,0 +1,66 @@
+#!/usr/bin/python
+# Copyright (C) 2016 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# File: make-version-file
+# Purpose:
+# Creates version file in live-build chroot includes dir
+# that is included in the image and used by 'show version' command
+# and install/upgrade scripts.
+
+from __future__ import print_function
+import os
+import datetime
+import json
+import uuid
+
+import defaults
+import util
+
+util.check_build_config()
+with open(defaults.BUILD_CONFIG, 'r') as f:
+ build_config = json.load(f)
+
+
+now = datetime.datetime.today()
+
+build_timestamp = now.strftime("%Y%m%d%H%M")
+
+# FIXME: use aware rather than naive object
+build_date = now.strftime("%a %d %b %Y %H:%M UTC")
+
+# Assign a (hopefully) unique identifier to the build (UUID)
+build_id = str(uuid.uuid4())
+
+if build_config['build_type'] == 'development':
+ version = "999.{0}".format(build_timestamp)
+else:
+ version = build_config['version']
+
+version_data = {
+ 'version': version,
+ 'built_by': build_config['build_by'],
+ 'built_on': build_date,
+ 'build_id': build_id
+}
+
+
+with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'opt/vyatta/etc/version.json'), 'w') as f:
+ json.dump(version_data, f)
+
+# For backwards compatibility with 'add system image' script from older versions
+# we need a file in old format so that script can find out the version of the image
+# for upgrade
+with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'opt/vyatta/etc/version'), 'w') as f:
+ print("Version: {0}".format(version), file=f)