2011-10-10 14 views
6

Czy istnieje sposób przekazywania parametrów administratorowi root aplikacji innej niż z plikiem konfiguracyjnym i aplikacją: get_env/1? Na przykład przez linię poleceń?początkowa aplikacja erlang z parametrem

Uruchamiam moją aplikację jako "erl -pa ebin -run appname", a następnie komunikuję się z nią przez TCP/IP. Port TCP, na którym nasłuchuje, jest ustawiony w pliku ebin/appname.app, w części env. Teraz chciałbym móc powiedzieć mojej aplikacji, aby zapomniała o tym i słuchała na porcie, który dałbym w linii poleceń (coś w stylu "erl -pa ebin -run nazwa-aplikacji [en [port, 1234}]"). Czy istnieje standardowy wzór do tego?

Problem polega na tym, że czasami decyduję, że aplikacja powinna się uruchamiać na innym, nie domyślnym porcie, do celów testowych, a zmienianie pliku .app za każdym razem jest po prostu bólem w dupę.

Pozdrawiam, dijxtra

Odpowiedz

8

Tak. Można zastąpić wartość zmiennej środowiskowej poprzez linię poleceń, używając:

erl -appname key value 

i pobieranie za pomocą parametru:

application:get_env(appname, key). 
+0

jesteś piękna, dziękuję. To zdecydowanie powinno zostać dodane [tutaj] (http://www.erlang.org/doc/apps/kernel/application.html#get_env-1). – dijxtra