[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Expanding variables in ReturnsZero function
From: |
paguerlais |
Subject: |
Expanding variables in ReturnsZero function |
Date: |
Thu, 25 Jul 2002 16:20:28 +0200 |
Hi all,
I want to give a variable with a default value if it's not already defined.
The only way I found to do that was to use a ReturnsZero function to test
the current value of the variable, and to initialize it it's null :
<cut>
control:
host1::
my_var = ( value_for_host1 )
host2::
my_var = ( value_for_host2 )
groups:
my_var_is_already_valued = ( ReturnsZero(/bin/test -n "$(my_var)") )
control:
!my_var_is_already_valued::
my_var = ( some_default_value )
</cut>
It doesn't work because cfengine doesn't expand variables used in a command
for an internal function (I've spent some time reading functions.c,
popen.c, misc.c and varstring.c). Is this done in purpose (and the next
question is why), or was this feature simply forgot ? I'd like that feature
not only for command arguments, but also for the command itself (you define
a variable named TEST and valued with /bin/test, and you call ReturnsZero
($(TEST) ... ))
Next, is there a better way to test if a variable has a value ?
Thanks
Patrice
----------------
Les donnees et renseignements contenus dans ce message sont personnels,
confidentiels et secrets. Ce message est adresse a l'individu ou l'entite dont
les coordonnees figurent ci-dessus. Si vous n'etes pas le bon destinataire,
nous vous demandons de ne pas lire, copier, utiliser ou divulguer cette
communication. Nous vous prions de notifier cette erreur a l'expediteur et
d'effacer immediatement cette communication de votre systeme.
The information contained in this message is privileged, confidential, and
protected from disclosure. This message is intended for the individual or
entity adressed herein. If you are not the intended recipient, please do not
read, copy, use or disclose this communication to others ;also please notify
the sender by replying to this message, and then delete it from your system.
- Expanding variables in ReturnsZero function,
paguerlais <=