Packages
enux
0.9.7
1.6.0
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.14
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
utility package for loading, validating and documenting your app's configuration variables from env, json, jsonc and toml files at runtime and injecting them into your environment
Current section
Files
Jump to
Current section
Files
lib/env.ex
defmodule Enux.Env do
@moduledoc """
handles env files
"""
import Enux.Utils
@doc """
decodes the content of the env file passed to it by `Enux.load` and format it into a keyword list
"""
def decode(content, opts) do
content
|> Enum.filter(fn l -> String.trim(l) != "" end)
|> Enum.filter(fn l -> !String.starts_with?(l, "#") end)
|> Enum.map(fn l ->
Regex.run(~r/(?<k>[A-Za-z0-9_\s]+)=(?<v>.*)/, l, capture: :all_but_first)
end)
|> Enum.map(fn l -> l |> Enum.map(fn i -> String.trim(i) end) end)
|> Enum.map(fn [k, v] ->
{k |> handle_number() |> String.to_atom(), v |> url_encode_conditional(opts)}
end)
end
end