lib/log/reset/top_sup.ex

defmodule Log.Reset.TopSup do
  use Application
  use PersistConfig

  alias __MODULE__
  alias Log.Reset.ConfigPaths.Server
  alias Log.Reset

  @spec start(Application.start_type(), term) :: {:ok, pid}
  def start(_type, :ok) do
    [
      # Child spec relying on `use GenServer`...
      {Server, levels()}
    ]
    |> Supervisor.start_link(name: TopSup, strategy: :one_for_one)
  end

  ## Private functions

  @spec levels :: Reset.levels()
  defp levels, do: get_env(:levels, :all)
end