From 5dadc47eb07be076a8b270458badb9d8cd7dfead Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Tue, 28 Jan 2020 16:06:48 -0500 Subject: start elixir conversion --- config/load_from_dotenv.exs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 config/load_from_dotenv.exs (limited to 'config/load_from_dotenv.exs') diff --git a/config/load_from_dotenv.exs b/config/load_from_dotenv.exs new file mode 100644 index 0000000..244e2bc --- /dev/null +++ b/config/load_from_dotenv.exs @@ -0,0 +1,36 @@ +def load_dotenv!() do + {:ok, projroot} = __DIR__ |> get_projroot + + contents = + case projroot |> Path.join(".env") |> File.read() do + {:error, :enoent} -> + Logger.warn("skipping dotenv file: doesn't exist") + "" + + {:ok, contents} -> + contents + end + + contents + |> String.split("\n") + |> Enum.map(&String.trim/1) + |> Enum.filter(fn x -> x != "" end) + |> Enum.map(fn x -> + result = String.split(x, "=") + {Enum.at(result, 0), Enum.at(result, 1)} + end) + |> System.put_env() +end + +def get_projroot(base) do + result = + with {:ok, info} <- base |> Path.join(".thulani_root") |> File.stat(), + :regular <- info.type, + do: {:ok, base} + + case result do + {:error, :enoent} -> get_projroot(base |> Path.join("..") |> Path.expand()) + {:ok, "/"} -> {:error, "couldn't find .thulani_root"} + x -> x + end +end -- cgit v1.3.1