aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Lemenkov <[email protected]>2014-11-08 15:11:04 +0300
committerMarcus Arendt <[email protected]>2014-11-26 15:40:53 +0100
commitae13f4759fd47c0db36c8a3bd9759e01d709ee02 (patch)
treef5147f29ee37648f885dd7a2839302dfd7edea18
parenta02a9fdccaf0ba94503bc10b81a55a6aeec8d760 (diff)
downloadotp-ae13f4759fd47c0db36c8a3bd9759e01d709ee02.tar.gz
otp-ae13f4759fd47c0db36c8a3bd9759e01d709ee02.tar.bz2
otp-ae13f4759fd47c0db36c8a3bd9759e01d709ee02.zip
Introduce os:getenv/2
Signed-off-by: Peter Lemenkov <[email protected]>
-rw-r--r--lib/kernel/doc/src/os.xml13
-rw-r--r--lib/kernel/src/os.erl15
2 files changed, 27 insertions, 1 deletions
diff --git a/lib/kernel/doc/src/os.xml b/lib/kernel/doc/src/os.xml
index 2b57e75023..8b85f24455 100644
--- a/lib/kernel/doc/src/os.xml
+++ b/lib/kernel/doc/src/os.xml
@@ -100,6 +100,19 @@ DirOut = os:cmd("dir"), % on Win32 platform</code>
</desc>
</func>
<func>
+ <name name="getenv" arity="2"/>
+ <fsummary>Get the value of an environment variable</fsummary>
+ <desc>
+ <p>Returns the <c><anno>Value</anno></c> of the environment variable
+ <c><anno>VarName</anno></c>, or <c>DefaultValue</c> if the environment variable
+ is undefined.</p>
+ <p>If Unicode file name encoding is in effect (see the <seealso
+ marker="erts:erl#file_name_encoding">erl manual
+ page</seealso>), the strings (both <c><anno>VarName</anno></c> and
+ <c><anno>Value</anno></c>) may contain characters with codepoints > 255.</p>
+ </desc>
+ </func>
+ <func>
<name name="getpid" arity="0"/>
<fsummary>Return the process identifier of the emulator process</fsummary>
<desc>
diff --git a/lib/kernel/src/os.erl b/lib/kernel/src/os.erl
index 187fd0001b..8aaf13b3fd 100644
--- a/lib/kernel/src/os.erl
+++ b/lib/kernel/src/os.erl
@@ -26,7 +26,7 @@
%%% BIFs
--export([getenv/0, getenv/1, getpid/0, putenv/2, timestamp/0, unsetenv/1]).
+-export([getenv/0, getenv/1, getenv/2, getpid/0, putenv/2, timestamp/0, unsetenv/1]).
-spec getenv() -> [string()].
@@ -39,6 +39,19 @@ getenv() -> erlang:nif_error(undef).
getenv(_) ->
erlang:nif_error(undef).
+-spec getenv(VarName, DefaultValue) -> Value when
+ VarName :: string(),
+ DefaultValue :: string(),
+ Value :: string().
+
+getenv(VarName, DefaultValue) ->
+ case os:getenv(VarName) of
+ false ->
+ DefaultValue;
+ Value ->
+ Value
+ end.
+
-spec getpid() -> Value when
Value :: string().