Czy można zmienić domyślną wartość zmiennej roli zgodnie z pewnym warunkiem (tj. Wartością innej zmiennej)?
Detale
Mam dwie powiązane zmienne dla polecenia env
i composer_opts
.
Jeśli oba są pozostawione domyślnie ( env = "prod"
i composer_opts = "--no-dev"
) wszystko jest w porządku.
Jeśli zmienię env
na dev
, ustawienie domyślne dla drugiego zepsuje moje polecenie, więc zawsze muszę ustawić oba. Czy można tego uniknąć, ustawiając domyślną wartość warunkową za pomocą skryptu niestandardowego / if?
Ważne: nie chcę zawsze ustawiać composer_opts
wartości zgodnie z env
wartością. Chcę to ustawić tylko wtedy, gdy nie jest jeszcze ustawione (tj. Dynamiczna wartość domyślna).
Pseudo kod
Chciałbym zrobić coś takiego (poniższy kod jest nieprawidłowy, wystarczy pseudokod, aby wyrazić moją potrzebę)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
na pusty ciąg znaków, gdyenv
jest „dev”, zastępując wszelkie ustawione wartości rzeczywiste. Myślę, że warunkowy powinien zostać rozszerzony tak:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
. Czy to dobrze wygląda? Czy potrafisz odpowiednio udoskonalić swoje pytanie?