aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/config.exs9
-rw-r--r--config/dev.exs14
-rw-r--r--config/load_from_dotenv.exs36
-rw-r--r--config/prod.exs5
-rw-r--r--config/release.exs1
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 @@
+