help-cfengine
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]