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")