Envar (envar v1.1.0)

Docs for Envar; Environment Variable checker/getter. Variable names are logged to improve developer experience. The values of Environment Variables should never be logged here. If an App needs to debug a variable, it can log it locally.

Link to this section Summary

Functions

get/2 gets an environment variable by name with an optional second argument default_value which, as it's name suggests, defines the default value for the evironment variable if it is not set.

is_set_all/1 binary check that ALL environment variable in a List are defined. e.g: Envar.is_set_all?(~w/HEROKU FLYIO/) will return false if both the HEROKU and FLYIO environment variables are not set. When all of the environment variables in the list are set, it will return true. It's the equivalent of writing: Envar.is_set?("HEROKU") && Envar.is_set?("FLYIO").

is_set_any/1 binary check that any environment variable in a List is defined. e.g: Envar.is_set_any?(["HEROKU", "FLYIO"]) will return false if both the HEROKU and FLYIO environment variables are not set. When any of the environment variables in the list are set, it will return true. It's the equivalent of writing: Envar.is_set?("HEROKU") || Envar.is_set?("FLYIO").

is_set/1 binary check that an environment variable is defined by name e.g: Envar.is_set?("HEROKU") will return false if the HEROKU environment variable is not set. When a particular variable is set, it will return true.

load/1 load a file containing a line-separated list of environment variables e.g: .env Set the value of each environment variable.

read/1 reads a file containing a line-separated list of environment variables e.g: .env Returns a Map in the form %{ KEY: value, MYVAR: value2 }

require_env_file/1 load a file containing a line-separated list of environment variables e.g: .env Set the value of each environment variable. Log an Error if the file is not available

set/2 set the value of an environment variable varname. Accepts two String parameters: varname and value.

Link to this section Functions

Link to this function

get(varname, default \\ nil)

@spec get(binary(), binary() | nil) :: binary() | nil

get/2 gets an environment variable by name with an optional second argument default_value which, as it's name suggests, defines the default value for the evironment variable if it is not set.

examples

Examples

iex> System.put_env("HELLO", "world")
iex> Envar.get("HELLO")
"world"

iex> Envar.get("FOO", "bar")
"bar"
Link to this function

is_set_all?(list)

@spec is_set_all?(list()) :: boolean()

is_set_all/1 binary check that ALL environment variable in a List are defined. e.g: Envar.is_set_all?(~w/HEROKU FLYIO/) will return false if both the HEROKU and FLYIO environment variables are not set. When all of the environment variables in the list are set, it will return true. It's the equivalent of writing: Envar.is_set?("HEROKU") && Envar.is_set?("FLYIO").

examples

Examples

iex> Envar.is_set_all?(["HEROKU", "AWS"])
false

iex> Envar.set("HELLO", "world")
iex> Envar.set("GOODBYE", "au revoir")
iex> Envar.is_set_all?(["HELLO",  "GOODBYE"])
true
Link to this function

is_set_any?(list)

@spec is_set_any?(list()) :: boolean()

is_set_any/1 binary check that any environment variable in a List is defined. e.g: Envar.is_set_any?(["HEROKU", "FLYIO"]) will return false if both the HEROKU and FLYIO environment variables are not set. When any of the environment variables in the list are set, it will return true. It's the equivalent of writing: Envar.is_set?("HEROKU") || Envar.is_set?("FLYIO").

examples

Examples

iex> Envar.is_set_any?(["HEROKU", "AWS"])
false

iex> System.put_env("HELLO", "world")
iex> Envar.is_set_any?(["HELLO",  "GOODBYE"])
true
Link to this function

is_set?(varname)

@spec is_set?(binary()) :: boolean()

is_set/1 binary check that an environment variable is defined by name e.g: Envar.is_set?("HEROKU") will return false if the HEROKU environment variable is not set. When a particular variable is set, it will return true.

examples

Examples

iex> Envar.is_set?("HEROKU")
false

iex> System.put_env("HELLO", "world")
iex> Envar.is_set?("HELLO")
true
@spec keys(binary()) :: list()
@spec load(binary()) :: :ok

load/1 load a file containing a line-separated list of environment variables e.g: .env Set the value of each environment variable.

examples

Examples

iex> Envar.load(".env")
:ok
@spec read(binary()) :: map()

read/1 reads a file containing a line-separated list of environment variables e.g: .env Returns a Map in the form %{ KEY: value, MYVAR: value2 }

examples

Examples

iex> Envar.read(".env")
%{
  "ADMIN_EMAIL" => "alex@gmail.com",
  "EVERYTHING" => "awesome!",
  "SECRET" => "master plan"
}
Link to this function

require_env_file(filename)

@spec require_env_file(binary()) :: :ok

require_env_file/1 load a file containing a line-separated list of environment variables e.g: .env Set the value of each environment variable. Log an Error if the file is not available

examples

Examples

iex> Envar.require_env_file(".env")
:ok

iex> Envar.require_env_file(".env_not_there")
:error
Link to this function

set(varname, value)

@spec set(binary(), binary()) :: :ok

set/2 set the value of an environment variable varname. Accepts two String parameters: varname and value.

examples

Examples

iex> Envar.set("API_KEY", "YourSuperLongAPIKey")
:ok
Link to this function

values(filename)

@spec values(binary()) :: list()