diff options
author | Ben Brown <ben.brown@codethink.co.uk> | 2018-02-06 16:11:05 +0000 |
---|---|---|
committer | Ben Brown <ben.brown@codethink.co.uk> | 2018-02-09 13:27:33 +0000 |
commit | 8b8265601c46128141b9ce00b85046da75569d5c (patch) | |
tree | d6343ec50116d36636af43696553fb56e6b3afb1 | |
parent | 8c04ee6c7ad144d0a2300145c01d652fabaf550a (diff) | |
download | ybd-8b8265601c46128141b9ce00b85046da75569d5c.tar.gz |
Translate additionally supported list format for rpm-metadata at parse time
-rw-r--r-- | ybd/morphs.py | 8 | ||||
-rw-r--r-- | ybd/rpm.py | 16 |
2 files changed, 10 insertions, 14 deletions
diff --git a/ybd/morphs.py b/ybd/morphs.py index d910a27..4e1059d 100644 --- a/ybd/morphs.py +++ b/ybd/morphs.py @@ -231,6 +231,14 @@ class Morphs(object): log(new_def, 'WARNING: \'unpetrify-ref\' is a deprecated field', exit=False) + if new_def.get('rpm-metadata'): + # Support two formats of 'rpm-metadata', the older + # format specifies 'rpm-metadata' as a list of packages, + # the new format specifies 'rpm-metadata' as a dictionary + # and the package list is found in it's 'packages' member. + if isinstance(new_def['rpm-metadata'], list): + new_def['rpm-metadata'] = {'packages': new_def['rpm-metadata']} + if dn is None: self._data[new_def['path']] = new_def @@ -124,15 +124,8 @@ def generate_spec(dn, stage_dir, metafile, output, name, system): metadata = yaml.safe_load(metafile_f) with open(output, "w") as output_f: - # Support two formats of 'rpm-metadata', the older - # format specifies 'rpm-metadata' as a list of packages, - # the new format specifies 'rpm-metadata' as a dictionary - # and the package list is found in it's 'packages' member. rpm_metadata = dn['rpm-metadata'] - if isinstance(rpm_metadata, Mapping): - package_list = rpm_metadata.get('packages', []) - else: - package_list = rpm_metadata + package_list = rpm_metadata.get('packages', []) description = 'No Description' @@ -263,12 +256,7 @@ def extract_defines(dn): def extract_metafiles(system, dn, instdir, metadir): - metadata = dn['rpm-metadata'] - if isinstance(metadata, Mapping): - packages = metadata.get('packages', []) - else: - packages = metadata - + packages = dn['rpm-metadata'].get('packages', []) for package in packages: metafile = package.get('metafile', '').lstrip(os.sep) metafile = expand_macro(system, dn, metafile) |