2011-10-10 10 views
6

के साथ एरलांग एप्लिकेशन शुरू करना कॉन्फ़िगरेशन फ़ाइल और एप्लिकेशन के अलावा किसी अन्य एप्लिकेशन के रूट पर्यवेक्षक को पैरामीटर पास करने का कोई तरीका है: get_env/1? उदाहरण के लिए, कमांड लाइन द्वारा?पैरामीटर

मैं अपना ऐप "erl -pa ebin -run appname" के रूप में शुरू करता हूं, और उसके बाद टीसीपी/आईपी द्वारा इसके साथ संवाद करता हूं। टीसीपी पोर्ट जिस पर यह सुनता है, env भाग में ebin/appname.app में सेट है। अब मैं भूलने के लिए अपने ऐप को बताने में सक्षम होना चाहता हूं और उस पोर्ट पर सुनना चाहता हूं जिसे मैं कमांड लाइन पर देता हूं (जैसे "erl -pa ebin -run appname -env [{port, 1234}]")। क्या इसके लिए एक मानक पैटर्न है?

समस्या यह है कि मैं कभी-कभी निर्णय लेता हूं कि ऐप परीक्षण उद्देश्यों के लिए किसी अन्य, गैर डिफ़ॉल्ट पोर्ट पर शुरू होना चाहिए, और हर बार .app फ़ाइल को बदलने से गधे में दर्द होता है।

सादर, dijxtra

उत्तर

8

हां। आप कमांड लाइन के माध्यम से एक वातावरण चर का मान ओवरराइड कर सकते हैं, का उपयोग करते हुए:

erl -appname key value 

और पैरामीटर का उपयोग कर पुन: प्राप्त करने:

application:get_env(appname, key). 
+0

आप सुंदर हैं, धन्यवाद। यह निश्चित रूप से जोड़ा जाना चाहिए [यहां] (http://www.erlang.org/doc/apps/kernel/application.html#get_env-1)। – dijxtra