diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/lib/oe/data.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/meta/lib/oe/data.py b/meta/lib/oe/data.py index 4a67c457b3..39567333f1 100644 --- a/meta/lib/oe/data.py +++ b/meta/lib/oe/data.py | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | import json | ||
| 1 | import oe.maketype | 2 | import oe.maketype |
| 2 | 3 | ||
| 3 | def typed_value(key, d): | 4 | def typed_value(key, d): |
| @@ -15,3 +16,30 @@ def typed_value(key, d): | |||
| 15 | return oe.maketype.create(d.getVar(key) or '', var_type, **flags) | 16 | return oe.maketype.create(d.getVar(key) or '', var_type, **flags) |
| 16 | except (TypeError, ValueError) as exc: | 17 | except (TypeError, ValueError) as exc: |
| 17 | bb.msg.fatal("Data", "%s: %s" % (key, str(exc))) | 18 | bb.msg.fatal("Data", "%s: %s" % (key, str(exc))) |
| 19 | |||
| 20 | def export2json(d, json_file, expand=True): | ||
| 21 | data2export = {} | ||
| 22 | keys2export = [] | ||
| 23 | |||
| 24 | for key in d.keys(): | ||
| 25 | if key.startswith("_"): | ||
| 26 | continue | ||
| 27 | elif key.startswith("BB"): | ||
| 28 | continue | ||
| 29 | elif key.startswith("B_pn"): | ||
| 30 | continue | ||
| 31 | elif key.startswith("do_"): | ||
| 32 | continue | ||
| 33 | elif d.getVarFlag(key, "func", True): | ||
| 34 | continue | ||
| 35 | |||
| 36 | keys2export.append(key) | ||
| 37 | |||
| 38 | for key in keys2export: | ||
| 39 | try: | ||
| 40 | data2export[key] = d.getVar(key, expand) | ||
| 41 | except bb.data_smart.ExpansionError: | ||
| 42 | data2export[key] = '' | ||
| 43 | |||
| 44 | with open(json_file, "w") as f: | ||
| 45 | json.dump(data2export, f, skipkeys=True, indent=4, sort_keys=True) | ||
