diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/config.exs | 9 | ||||
| -rw-r--r-- | config/dev.exs | 14 | ||||
| -rw-r--r-- | config/load_from_dotenv.exs | 36 | ||||
| -rw-r--r-- | config/prod.exs | 5 | ||||
| -rw-r--r-- | config/release.exs | 1 |
5 files changed, 65 insertions, 0 deletions
diff --git a/config/config.exs b/config/config.exs new file mode 100644 index 0000000..f0746d1 --- /dev/null +++ b/config/config.exs @@ -0,0 +1,9 @@ +import Config + +config :thulani, + env: Mix.env() + +config :logger, + level: :info + +import_config "#{Mix.env}.exs"
\ No newline at end of file diff --git a/config/dev.exs b/config/dev.exs new file mode 100644 index 0000000..9cba782 --- /dev/null +++ b/config/dev.exs @@ -0,0 +1,14 @@ +import Config + +config :logger, + level: :debug + +config :nostrum, + dev: true + +IO.puts("hello") + +Thulani.Bot.Config.load_env() +|> Enum.each(fn {key, vals} -> + config key, vals +end) 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 diff --git a/config/prod.exs b/config/prod.exs new file mode 100644 index 0000000..ba90609 --- /dev/null +++ b/config/prod.exs @@ -0,0 +1,5 @@ +import Config + +config :logger, + utc_log: true, + level: :warn diff --git a/config/release.exs b/config/release.exs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/config/release.exs @@ -0,0 +1 @@ + |
