diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2023-08-10 10:59:20 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2023-08-16 15:30:32 +0200 |
commit | 4830f2de654d2a4d43dcca3c8ad21fecea622378 (patch) | |
tree | 9017e830a17c69e065d6a99642f290683d97cfed | |
parent | 808b62b8e362d8c0bea03d38d3792a1d2de623d4 (diff) | |
download | rules-cc-4830f2de654d2a4d43dcca3c8ad21fecea622378.tar.gz |
rules: Expression to get base providers as list
-rw-r--r-- | CC/EXPRESSIONS | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/CC/EXPRESSIONS b/CC/EXPRESSIONS index 0ac44d2..2ebe7c1 100644 --- a/CC/EXPRESSIONS +++ b/CC/EXPRESSIONS @@ -126,29 +126,39 @@ } } } -, "defaults-base-provides": - { "doc": ["Query list-provider from 'base' targets (last wins)"] +, "defaults-base-provides-list": + { "doc": ["Query list of providers from 'base' targets"] , "vars": ["provider", "default"] , "vars_doc": - { "provider": ["The name of the list-provider in the provides map."] + { "provider": ["The name of the provider in the provides map."] , "default": ["The default if provider is missing (default: [])."] } , "imports": {"provider_list": ["./", "..", "field_provider_list"]} , "expression": { "type": "let*" , "bindings": [["fieldname", "base"]] + , "body": {"type": "CALL_EXPRESSION", "name": "provider_list"} + } + } +, "defaults-base-provides": + { "doc": ["Query provider from 'base' targets (last wins)"] + , "vars": ["provider", "default"] + , "vars_doc": + { "provider": ["The name of the provider in the provides map."] + , "default": ["The default if provider is missing (default: [])."] + } + , "imports": {"base-provides-list": "defaults-base-provides-list"} + , "expression": + { "type": "foldl" + , "var": "next" + , "start": {"type": "var", "name": "default", "default": []} + , "accum_var": "curr" + , "range": {"type": "CALL_EXPRESSION", "name": "base-provides-list"} , "body": - { "type": "foldl" - , "var": "next" - , "start": {"type": "var", "name": "default", "default": []} - , "accum_var": "curr" - , "range": {"type": "CALL_EXPRESSION", "name": "provider_list"} - , "body": - { "type": "if" - , "cond": {"type": "var", "name": "next"} - , "then": {"type": "var", "name": "next"} - , "else": {"type": "var", "name": "curr"} - } + { "type": "if" + , "cond": {"type": "var", "name": "next"} + , "then": {"type": "var", "name": "next"} + , "else": {"type": "var", "name": "curr"} } } } |