diff options
-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) |