diff options
author | Yeoh Ee Peng <ee.peng.yeoh@intel.com> | 2019-01-04 14:46:01 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-01-28 16:56:28 +0000 |
commit | f51e59bb6d571606cf887a3f623380cc3516c5a2 (patch) | |
tree | d1e041c599d2c83f175b66219853a44b2cea9234 | |
parent | 284252d1b6d1672a5b6c042fa591f00d89613a22 (diff) | |
download | openembedded-core-f51e59bb6d571606cf887a3f623380cc3516c5a2.tar.gz openembedded-core-f51e59bb6d571606cf887a3f623380cc3516c5a2.tar.bz2 openembedded-core-f51e59bb6d571606cf887a3f623380cc3516c5a2.zip |
scripts/oe-git-archive: fix non-existent key referencing error
Without installing gitpython package, oe-git-archive will face error
below, where it was referencing key that was non-existent inside
metadata object.
Traceback (most recent call last):
File "<poky_dir>/scripts/oe-git-archive", line 271, in <module>
sys.exit(main())
File "<poky_dir>/scripts/oe-git-archive", line 229, in main
'commit_count': metadata['layers']['meta']['commit_count'],
KeyError: 'commit_count'
Fix this error by adding exception catch when referencing
non-existent key (based on inputs provided by Richard Purdie).
[YOCTO# 13082]
(From OE-Core rev: 9a3cc9b8523b78dda6c3f3f2e12798b2b907d7e5)
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rwxr-xr-x | scripts/oe-git-archive | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/scripts/oe-git-archive b/scripts/oe-git-archive index ab19cb9aa3..913291a99c 100755 --- a/scripts/oe-git-archive +++ b/scripts/oe-git-archive @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # # Helper script for committing data to git and pushing upstream # @@ -208,6 +208,13 @@ def parse_args(argv): help="Data to commit") return parser.parse_args(argv) +def get_nested(d, list_of_keys): + try: + for k in list_of_keys: + d = d[k] + return d + except KeyError: + return "" def main(argv=None): """Script entry point""" @@ -223,11 +230,11 @@ def main(argv=None): # Get keywords to be used in tag and branch names and messages metadata = metadata_from_bb() - keywords = {'hostname': metadata['hostname'], - 'branch': metadata['layers']['meta']['branch'], - 'commit': metadata['layers']['meta']['commit'], - 'commit_count': metadata['layers']['meta']['commit_count'], - 'machine': metadata['config']['MACHINE']} + keywords = {'hostname': get_nested(metadata, ['hostname']), + 'branch': get_nested(metadata, ['layers', 'meta', 'branch']), + 'commit': get_nested(metadata, ['layers', 'meta', 'commit']), + 'commit_count': get_nested(metadata, ['layers', 'meta', 'commit_count']), + 'machine': get_nested(metadata, ['config', 'MACHINE'])} # Expand strings early in order to avoid getting into inconsistent # state (e.g. no tag even if data was committed) |