# This file is responsible for configuring your application
# and its dependencies with the aid of the Mix.Config module.
use Mix.Config

defer = fn fun ->
  apply(fun, [])
end

app_root = fn ->
  if String.contains?(File.cwd!(), "apps") do
    Path.join([File.cwd!(), "/../../"])
  else
    File.cwd!()
  end
end

cookie =
  defer.(fn ->
    cookie_resp =
      [app_root.(), ".erlang_cookie"]
      |> Path.join()
      |> File.read()

    case cookie_resp do
      {:ok, cookie} ->
        cookie
        |> String.trim()
        |> :erlang.binary_to_atom(:utf8)

      _ ->
        nil
    end
  end)

config :cli,
  cookie: cookie

# This configuration is loaded before any dependency and is restricted
# to this project. If another project depends on this project, this
# file won't be loaded nor affect the parent project. For this reason,
# if you want to provide default values for your application for
# 3rd-party users, it should be done in your "mix.exs" file.

# You can configure your application as:
#
#     config :cli, key: :value
#
# and access this configuration in your application as:
#
#     Application.get_env(:cli, :key)
#
# You can also configure a 3rd-party app:
#
#     config :logger, level: :info
#

# It is also possible to import configuration files, relative to this
# directory. For example, you can emulate configuration per environment
# by uncommenting the line below and defining dev.exs, test.exs and such.
# Configuration from the imported file will override the ones defined
# here (which is why it is important to import them last).
#
#     import_config "#{Mix.env()}.exs"
