mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

We want to be able to save relative paths so that we can relocate the deploy dir images and kernels, yet still have qemu and testimage work correctly. This extends export2json with 2 named arguments so a search/replace operation can be done to remove the leading path. [YOCTO #11375] (From OE-Core rev: 4829f1ebd89dc91860cf72fbbdc7b6bb0d5822bc) Signed-off-by: brian avery <brian.avery@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
import json
|
|
import oe.maketype
|
|
|
|
def typed_value(key, d):
|
|
"""Construct a value for the specified metadata variable, using its flags
|
|
to determine the type and parameters for construction."""
|
|
var_type = d.getVarFlag(key, 'type')
|
|
flags = d.getVarFlags(key)
|
|
if flags is not None:
|
|
flags = dict((flag, d.expand(value))
|
|
for flag, value in list(flags.items()))
|
|
else:
|
|
flags = {}
|
|
|
|
try:
|
|
return oe.maketype.create(d.getVar(key) or '', var_type, **flags)
|
|
except (TypeError, ValueError) as exc:
|
|
bb.msg.fatal("Data", "%s: %s" % (key, str(exc)))
|
|
|
|
def export2json(d, json_file, expand=True, searchString="",replaceString=""):
|
|
data2export = {}
|
|
keys2export = []
|
|
|
|
for key in d.keys():
|
|
if key.startswith("_"):
|
|
continue
|
|
elif key.startswith("BB"):
|
|
continue
|
|
elif key.startswith("B_pn"):
|
|
continue
|
|
elif key.startswith("do_"):
|
|
continue
|
|
elif d.getVarFlag(key, "func"):
|
|
continue
|
|
|
|
keys2export.append(key)
|
|
|
|
for key in keys2export:
|
|
try:
|
|
data2export[key] = d.getVar(key, expand).replace(searchString,replaceString)
|
|
except bb.data_smart.ExpansionError:
|
|
data2export[key] = ''
|
|
except AttributeError:
|
|
pass
|
|
|
|
with open(json_file, "w") as f:
|
|
json.dump(data2export, f, skipkeys=True, indent=4, sort_keys=True)
|