8 Stimmen

Erlang: Wie kann man auf CLI-Flags (Argumente) als Umgebungsvariablen der Anwendung zugreifen?

Wie kann man in Erlang auf Kommandozeilenflags (Argumente) als Umgebungsvariablen zugreifen? (Als Flags, nicht ARGV) Zum Beispiel:

RabbitMQ cli sieht in etwa so aus:

erl \
...
-sasl errlog_type error \
-sasl sasl_error_logger '{file,"'${RABBITMQ_SASL_LOGS}'"}' \
... # more stuff here

Betrachtet man sasl.erl Sie sehen die Linie:

get_sasl_error_logger() ->
   case application:get_env(sasl, sasl_error_logger) of
% ... etc

Durch eine unbekannte Magie wird die sasl_error_logger Variable wird zu einem Erlang-Tupel! Ich habe versucht, dies in meinem eigenen Erlang nachzubilden application aber ich scheine auf diese Werte nur zugreifen zu können über init:get_argument die den Wert als Zeichenkette zurückgibt.

Wie kann man Werte über die Kommandozeile übergeben und auf sie einfach als Erlang-Terme zugreifen?

UPDATE Für alle, die Umgebungsvariablen auf 'normale' Weise verwenden möchten, können Sie auch os:getenv("THE_VAR")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X