Current section
Files
Jump to
Current section
Files
lib/quarrel/guild_supervisor/guild.ex
defmodule Quarrel.GuildSupervisor.Guild do
@moduledoc """
rootlevel supervisor that gets started once per guild
"""
use Supervisor
import Quarrel.GuildSupervisor.NameProvider
def start_link([guild, config, bot]) do
Supervisor.start_link(__MODULE__, [guild, config, bot], name: via(guild, __MODULE__))
end
@impl Supervisor
def init([guild, config, bot]) do
children = Application.get_env(:quarrel, Quarrel.GuildSupervisor)[:children] || []
Enum.map(children, fn module -> {module, [guild, config, bot]} end)
|> Supervisor.init(strategy: :one_for_one)
end
end