เป็นไปได้หรือไม่ที่จะเปลี่ยนค่าเริ่มต้นของตัวแปรบทบาทตามเงื่อนไขบางประการ (เช่นค่าของตัวแปรอื่น)
รายละเอียด
ฉันมีสองตัวแปรที่เกี่ยวข้องสำหรับคำสั่งและenv
composer_opts
หากทั้งคู่ถูกปล่อยไว้ที่ค่าเริ่มต้น ( env = "prod"
และcomposer_opts = "--no-dev"
) ทุกอย่างก็โอเค
ถ้าฉันเปลี่ยนenv
ไปdev
เริ่มต้นสำหรับคนอื่น ๆ จะทำลายคำสั่งของฉันดังนั้นฉันมักจะต้องตั้งค่าทั้ง เป็นไปได้ไหมที่จะหลีกเลี่ยงปัญหานี้โดยการตั้งค่าเริ่มต้นตามเงื่อนไขด้วยสคริปต์ที่กำหนดเอง / หาก
สำคัญ: ฉันไม่ต้องการที่จะเสมอตั้งcomposer_opts
ค่าตามenv
ค่า ฉันต้องการตั้งค่าเฉพาะเมื่อยังไม่ได้ตั้งค่า (เช่นค่าเริ่มต้นแบบไดนามิก)
pseudocode
ฉันต้องการทำอะไรเช่นนี้ (รหัสต่อไปนี้ไม่ถูกต้องเพียงรหัสเทียมเพื่อแสดงความต้องการของฉัน)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
เป็นสตริงว่างเสมอเมื่อenv
เป็น "dev" เขียนทับชุดค่าจริงใด ๆwhen: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
ผมคิดว่ามีเงื่อนไขควรจะขยายเช่นนี้ มันดูดีหรือไม่? คุณสามารถ udpate คำถามของคุณตาม?