É possível alterar o valor padrão da variável de função de acordo com alguma condição (ou seja, o valor de outra variável)?
Detalhes
Eu tenho duas variáveis relacionadas para um comando env
e composer_opts
.
Se ambos forem deixados no padrão ( env = "prod"
e composer_opts = "--no-dev"
) tudo está ok.
Se eu mudar env
para dev
, o padrão para o outro interromperá meu comando, portanto, sempre preciso definir os dois. Seria possível evitar isso definindo um valor padrão condicional com um script personalizado / if?
Importante: não quero sempre definir o composer_opts
valor de acordo com o env
valor. Quero defini-lo apenas se ainda não estiver definido (ou seja, um valor padrão dinâmico).
Pseudo-código
Gostaria de fazer algo assim (o código a seguir não é válido, apenas pseudocódigo para expressar minha necessidade)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
como string vazia quandoenv
for "dev", substituindo qualquer valor real definido. Eu acho que a condicional deve ser alargado como este:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. Parece bom? Você pode atualizar sua pergunta de acordo?