Forum: CFEngine Help
Subject: Re: Var in var : limitation ?
Author: loopx
Link to topic: https://cfengine.com/forum/read.php?3,26678,26689#msg-26689
I fixed my problem like this :
bundle agent subversion {
vars:
subversion::
"service" string => "$(g.service_detected)";
"path_repository_default" string =>
"/mnt/data1/subversion";
servers_management::
"repositories_$(service)"
slist => {
"$(path_repository_default)/cfengine3"
};
# Only for DEBUG
# reports:
# subversion::
# "Defined repositories = '$(repositories_$(service))'";
files:
subversion::
"/svn"
link_from =>
ln_s("$(path_repository_default)"),
comment => "Symlink for easy
repositories usage from remote machines";
# Subversion's Hooks (copy 'post-commit' + symlink for
'post-revprop-change') #############################################
"$(repositories_$(service))/hooks/post-commit"
comment => "Copy 'post-commit' hook
(from repositories set for the service)",
copy_from =>
no_backup_rcp("$(g.location_services)/$(service)/$(repositories_$(service))/hooks/post-commit",
"$(sys.policy_hub)"),
perms => mog(750, "root", "cfadmin");
...
}
In fact, I have one configuration file "subversion.cf". I want to copy "hooks"
(if exists) from a path like this :
"/var/cfengine/data/services//mnt/data1/subversion//hooks/post-commit".
I want to make a generic code and so, I have to use a var in var
(repositories_) to made the promise. At the first time, it was working fine
without any problem but since I wanted to move the "service" to
"g.service_detected" (hardcoded only at one place : global.cf) but since that
move, it fails. So, now, I get the value of the g.service_detected to the local
var "service" and, no more problem at all :D.
And the question was : why ? What's the difference between global and local var
? Why was it working before and not now ? (before this fix)
Thanks for your help
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine