Forum: CFEngine Help
Subject: Re: edit_template variable expansion
Author: sauer
Link to topic: https://cfengine.com/forum/read.php?3,25766,25790#msg-25790
It seems that the template is interpreted in the context of the edit_line
bundle, so only variables local to the edit_line bundle would be visible
locally; any other variables would be accessible in the same way as usual; by
using the fully-qualified variable name (i.e. "$(bundle.varname)"). This is
behavior consistent with any other bundle; unqualified variables are
interpreted with an implicit "this".
So, if you want the template to use an unqualified / "local" variable rather
than a fully-qualified variable, you'd have to either statically define it in
the edit_lines bundle directly, or accept is as a parameter passed in to the
edit_lines bundle:
$ cat edit.cf
bundle agent a {
files:
"/tmp/deleteme"
create => "true",
edit_line => template();
}
bundle edit_line template {
vars:
"parameter" string => "Substituted Text!";
insert_lines:
"/tmp/template"
insert_type => "file",
expand_scalars => "true";
}
$ cat /tmp/template
This is some text
The inserted text is '$(parameter)'
Whee!
$ cf-agent -IKf ./edit.cf -b a
>> Using command line specified bundlesequence
-> Created file /tmp/deleteme, mode = 600
-> Edited file /tmp/deleteme
$ cat /tmp/deleteme
This is some text
The inserted text is 'Substituted Text!'
Whee!
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine