क्या किसी स्थिति (यानी दूसरे चर के मूल्य) के अनुसार एक भूमिका चर डिफ़ॉल्ट मान बदलना संभव है?
विवरण
मेरे पास एक कमांड के लिए दो संबंधित चर हैं, env
और composer_opts
।
यदि दोनों को डिफ़ॉल्ट ( env = "prod"
और composer_opts = "--no-dev"
) पर छोड़ दिया जाए तो सब कुछ ठीक है।
अगर मैं बदल env
जाता dev
हूं, तो दूसरे के लिए डिफ़ॉल्ट मेरी कमांड को तोड़ देगा, इसलिए मुझे हमेशा दोनों को सेट करने की आवश्यकता है। क्या कस्टम स्क्रिप्ट / / के साथ सशर्त डिफ़ॉल्ट मान सेट करके इससे बचना संभव होगा?
महत्वपूर्ण: मैं हमेशाcomposer_opts
मूल्य के अनुसार मूल्य निर्धारित नहीं करना चाहता env
। मैं इसे तभी सेट करना चाहता हूं जब यह पहले से सेट न हो (यानी डायनेमिक डिफ़ॉल्ट मान)।
स्यूडोकोड
मैं ऐसा कुछ करना चाहूंगा (निम्नलिखित कोड मान्य नहीं है, बस अपनी आवश्यकता व्यक्त करने के लिए छद्म कोड)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
होने पर यह हमेशा रिक्त स्ट्रिंग पर सेट होगाenv
, किसी भी वास्तविक मूल्य सेट को ओवरराइट कर रहा है। मुझे लगता है कि सशर्त को इस तरह बढ़ाया जाना चाहिएwhen: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
:। क्या यह अच्छा लग रहा है? क्या आप अपने प्रश्न को उसके अनुसार बता सकते हैं?