Is it possible to change a role variable default value according to some condition (i.e. the value of another variable)?
Details
I have two related variables for a command, env and composer_opts.
If both are left at default (env = "prod" and composer_opts = "--no-dev") everything is ok.
If I change env to dev, the default for the other one will break my command, so I always need to set both. Would it be possible to avoid this by setting a conditional default value with a custom script / if?
Important: I don't want to always set the composer_opts value according to the env value. I want to set it only if it's not already set (i.e. a dynamic default value).
Pseudocode
I would like to do something like this (following code is not valid, just pseudocode to express my need)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_optsto empty string whenenvis "dev", overwriting any actual value set. I think the conditional should be extended like this:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined. Does it looks good? Can you udpate your question accordingly? – Francesco Abeni Aug 21 '15 at 11:05