2012-12-04 26 views
12

का उपयोग करके पर्यावरण चर सेट करने के लिए कैसे करें मेरे पास एक स्थानीय विकास वातावरण है जो सिस्टम पर्यावरण चर पर निर्भर करता है (यह हेरोकू 12-कारक ऐप मॉडल का पालन करता है), और मैं वर्तमान में इन्हें एक शेल स्क्रिप्ट का उपयोग करके सेट करता हूं। शेल स्क्रिप्ट भी गिट रिमोट्स सेट अप करता है, और वर्चुअलएन्व पर्यावरण को सक्रिय करता है, और यदि संभव हो, तो यह सब एक फैब्रिक कमांड (या कमांड की श्रृंखला) में ले जाने के लिए, जैसा कि हम अन्य सामानों के समूह के लिए फैब्रिक का उपयोग कर रहे हैं , और मैं खोल स्क्रिप्ट को सेवानिवृत्त करना चाहता हूं।फैब्रिक

रनिंग local('export FOO=bar') काम नहीं करता:

$ fab set_default_env_vars 
Using fabfile '/home/hugo/Projects/test/fabfile.py' 
[localhost] local: export FOO=bar 

Done. 

$ echo $FOO 

$ 

यह संभव है - और यदि हां, तो कैसे?

उत्तर

19

आप fabric.context_managers.shell_envexport एक चर करने के लिए अपने खोल के लिए पार्टी की योजना बनाई उपयोग कर सकते हैं और सभी subshells इसे से पैदा की है - लेकिन वे चर खोल है कि वे के लिए (ताकि आप के लिए पर्यावरण चर सेट नहीं कर सकता परिभाषित किया गया परे जारी रहती है नहीं होगा एक कपड़े स्क्रिप्ट से पैरेंट खोल जिस तरह से आपके उदाहरण है)।

आप कर सकते हैं एक bash स्क्रिप्ट की स्थापना की है कि आप अपने स्थानीय पर्यावरण के लिए स्रोत है कि है identical to what you would add to ~/.profile in your production slug (अपने कुंजी में, जरूरी नहीं कि इसका मान) और स्रोत के लिए इससे पहले कि आप अपने स्थानीय कमांड चलाने है कि फाइल fabric.context_managers.prefix का उपयोग करें।

संबंधित मुद्दे