From b29774a380ace86144841d4daa64102761254e5f Mon Sep 17 00:00:00 2001 From: Kevin Avignon <6740474+Kavignon@users.noreply.github.com> Date: Wed, 8 Jan 2025 01:38:31 +0000 Subject: [PATCH 1/3] Added dotenv HEX package --- mix.exs | 3 ++- mix.lock | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 72a5cef..789ee43 100644 --- a/mix.exs +++ b/mix.exs @@ -36,7 +36,8 @@ defmodule ElixirKickoff.MixProject do {:ex_doc, "~> 0.34", only: :dev, runtime: false}, {:mix_audit, "~> 2.1"}, {:sobelow, "~> 0.13.0"}, - {:styler, "~> 1.2", only: [:dev, :test], runtime: false} + {:styler, "~> 1.2", only: [:dev, :test], runtime: false}, + {:dotenv, "~> 3.0.0", only: [:dev, :test]} ] end end diff --git a/mix.lock b/mix.lock index 4098595..9fab54b 100644 --- a/mix.lock +++ b/mix.lock @@ -2,6 +2,7 @@ "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, "credo": {:hex, :credo, "1.7.10", "6e64fe59be8da5e30a1b96273b247b5cf1cc9e336b5fd66302a64b25749ad44d", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "71fbc9a6b8be21d993deca85bf151df023a3097b01e09a2809d460348561d8cd"}, "dialyxir": {:hex, :dialyxir, "1.4.4", "fb3ce8741edeaea59c9ae84d5cec75da00fa89fe401c72d6e047d11a61f65f70", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "cd6111e8017ccd563e65621a4d9a4a1c5cd333df30cebc7face8029cacb4eff6"}, + "dotenv": {:hex, :dotenv, "3.0.0", "52a28976955070d8312a81d59105b57ecf5d6a755c728b49c70a7e2120e6cb40", [:mix], [], "hexpm", "f8a7d800b6b419a8d8a8bc5b5cd820a181c2b713aab7621794febe934f7bd84e"}, "earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"}, "erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"}, "ex_doc": {:hex, :ex_doc, "0.35.1", "de804c590d3df2d9d5b8aec77d758b00c814b356119b3d4455e4b8a8687aecaf", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "2121c6402c8d44b05622677b761371a759143b958c6c19f6558ff64d0aed40df"}, From 1dfef366ebf6bcbcef2502c1fadfe200bd239582 Mon Sep 17 00:00:00 2001 From: Kevin Avignon <6740474+Kavignon@users.noreply.github.com> Date: Wed, 8 Jan 2025 01:38:55 +0000 Subject: [PATCH 2/3] Added Mix task to load env variables. --- lib/mix/tasks/env.load.ex | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 lib/mix/tasks/env.load.ex diff --git a/lib/mix/tasks/env.load.ex b/lib/mix/tasks/env.load.ex new file mode 100644 index 0000000..7db6df3 --- /dev/null +++ b/lib/mix/tasks/env.load.ex @@ -0,0 +1,17 @@ +defmodule Mix.Tasks.Env.Load do + @shortdoc "Loads .env variables via dotenv_elixir (or Dotenvy)." + + @moduledoc false + use Mix.Task + + def run(_) do + env = Dotenv.load() + System.put_env(env.values) + + if env.paths != [:none] and map_size(env.values) > 0 do + Mix.shell().info("Loaded .env variables from #{inspect(env.paths)}.") + else + Mix.shell().info("No .env file or error loading.") + end + end +end From 2ca42b07331d30287ef79d276411adef90799c77 Mon Sep 17 00:00:00 2001 From: Kevin Avignon <6740474+Kavignon@users.noreply.github.com> Date: Wed, 8 Jan 2025 02:07:25 +0000 Subject: [PATCH 3/3] Post start now loads env vars from .env file. --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e30a152..340fad7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -30,7 +30,7 @@ } }, "postCreateCommand": "mix deps.get", - "postStartCommand": "mix post_start", + "postStartCommand": "mix env.load && mix post_start", "mounts": [ "source=${localWorkspaceFolder},target=/workspace,type=bind", "source=${localEnv:HOME}/.gitconfig,target=/root/.gitconfig,type=bind,consistency=cached",