summaryrefslogtreecommitdiff
path: root/meta-phosphor
diff options
context:
space:
mode:
Diffstat (limited to 'meta-phosphor')
-rw-r--r--meta-phosphor/classes/obmc-phosphor-utils.bbclass15
1 files changed, 15 insertions, 0 deletions
diff --git a/meta-phosphor/classes/obmc-phosphor-utils.bbclass b/meta-phosphor/classes/obmc-phosphor-utils.bbclass
index 036af9b17..b5073a635 100644
--- a/meta-phosphor/classes/obmc-phosphor-utils.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-utils.bbclass
@@ -27,3 +27,18 @@ def set_append(d, var, val, sep=' '):
def listvar_to_list(d, list_var, sep=' '):
return filter(bool, (d.getVar(list_var, True) or '').split(sep))
+
+
+def compose_list(d, fmtvar, *listvars, **kw):
+ import itertools
+ fmt = d.getVar(fmtvar, True)
+ lists = [listvar_to_list(d, x) for x in listvars]
+ lst = [fmt.format(*x) for x in itertools.product(*lists)]
+ return (kw.get('sep') or ' ').join(lst)
+
+
+def compose_list_zip(d, fmtvar, *listvars, **kw):
+ fmt = d.getVar(fmtvar, True)
+ lists = [listvar_to_list(d, x) for x in listvars]
+ lst = [fmt.format(*x) for x in zip(*lists)]
+ return (kw.get('sep') or ' ').join(lst)