2011-10-10 32 views
6

Có cách nào để truyền tham số cho người giám sát gốc của một ứng dụng khác với tệp cấu hình và ứng dụng: get_env/1 không? Ví dụ, bằng dòng lệnh?bắt đầu ứng dụng erlang với tham số

Tôi bắt đầu ứng dụng của mình dưới dạng "tên ứng dụng erl -pa ebin -run" rồi giao tiếp với ứng dụng đó bằng TCP/IP. Cổng TCP mà nó lắng nghe được đặt trong ebin/appname.app, trong phần env. Bây giờ tôi muốn có thể nói với ứng dụng của tôi để quên điều đó và lắng nghe trên một cổng mà tôi sẽ đưa ra trên dòng lệnh (một cái gì đó như "erl -pa ebin -run appname -env [{port, 1234}]"). Có một mô hình chuẩn hóa cho điều đó không?

Vấn đề là đôi khi tôi quyết định ứng dụng nên bắt đầu trên một cổng không phải mặc định khác, cho mục đích thử nghiệm và thay đổi tệp .app mỗi lần chỉ là nỗi đau trong ass.

Kính trọng, dijxtra

Trả lời

8

Có. Bạn có thể ghi đè lên giá trị của một biến môi trường thông qua dòng lệnh, sử dụng:

erl -appname key value 

Và lấy tham số sử dụng:

application:get_env(appname, key). 
+0

Bạn đang đẹp, cảm ơn bạn. Điều này chắc chắn sẽ được thêm vào [ở đây] (http://www.erlang.org/doc/apps/kernel/application.html#get_env-1). – dijxtra

Các vấn đề liên quan