1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Config.Holder do
6 @config Pleroma.Config.Loader.default_config()
10 :ets.new(:default_config, [:named_table, :protected])
13 if System.get_env("RELEASE_NAME") do
15 [:code.root_dir(), "releases", System.get_env("RELEASE_VSN"), "releases.exs"]
17 |> Pleroma.Config.Loader.read()
19 Pleroma.Config.Loader.merge(@config, release_config)
24 :ets.insert(:default_config, {:config, default_config})
27 @spec default_config() :: keyword()
28 def default_config, do: from_ets()
30 @spec default_config(atom()) :: keyword()
31 def default_config(group), do: Keyword.get(from_ets(), group)
33 @spec default_config(atom(), atom()) :: keyword()
34 def default_config(group, key), do: get_in(from_ets(), [group, key])
37 [{:config, default_config}] = :ets.lookup(:default_config, :config)