diff options
-rw-r--r-- | meta-phosphor/classes/obmc-phosphor-utils.bbclass | 15 |
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) |