bundlesmatching
Prototype: bundlesmatching(name, tag1, tag2, ...)
Return type: slist
Description: Return the list of defined bundles matching name and any
tags given. Both bundlename and tags are regular expressions. name is
required, tags are optional.
This function searches for the given anchored name and tag1,
tag2, ... regular expression in the list of currently defined bundles.
Every bundle is prefixed with the namespace, usually default:.
When any tags are given, only the bundles with those tags are
returned. Bundle tags are set a tags variable within a meta
promise; see the example below.
This function, used together with the findfiles function, allows you
to do dynamic inputs and a dynamic bundle call chain. The dynamic
chain is constrained by an explicit regular expression to avoid
accidental or intentional running of unwanted bundles.
Arguments:
name:string, in the range:.*
Example:
body common control
{
bundlesequence => { mefirst };
}
bundle common g
{
vars:
"todo" slist => bundlesmatching("default:run.*");
}
bundle agent mefirst
{
methods:
# note this is a dynamic bundle sequence!
"" usebundle => $(g.todo);
}
bundle agent run_deprecated
{
meta:
"tags" slist => { "deprecated" };
}
bundle agent run_123_456
{
vars:
"bundles" slist => bundlesmatching(".*");
"deprecated_bundles" slist => bundlesmatching(".*", "deprecated");
"no_bundles" slist => bundlesmatching("891");
reports:
"bundles = $(bundles)";
"deprecated bundles = $(deprecated_bundles)";
"no bundles = $(no_bundles)";
}
Output:
R: bundles = default:run_123_456
R: bundles = default:run_deprecated
R: bundles = default:mefirst
R: bundles = default:g
R: deprecated bundles = default:run_deprecated
See also: findfiles().
