defmodule LSG.Application do use Application # See https://hexdocs.pm/elixir/Application.html # for more information on OTP Applications def start(_type, _args) do import Supervisor.Spec {:ok, irc_client} = ExIRC.start_link! # Define workers and child supervisors to be supervised children = [ # Start the endpoint when the application starts supervisor(LSGWeb.Endpoint, []), # Start your own worker by calling: LSG.Worker.start_link(arg1, arg2, arg3) # worker(LSG.Worker, [arg1, arg2, arg3]), worker(Registry, [[keys: :duplicate, name: LSG.BroadcastRegistry]]), worker(LSG.IcecastAgent, []), worker(LSG.Icecast, []), worker(LSG.IRC.ConnectionHandler, [irc_client]), worker(LSG.IRC.LoginHandler, [irc_client]), worker(LSG.IRC.BroadcastHandler, [irc_client]), worker(LSG.IRC.NpHandler, [irc_client]), ] # See https://hexdocs.pm/elixir/Supervisor.html # for other strategies and supported options opts = [strategy: :one_for_one, name: LSG.Supervisor] Supervisor.start_link(children, opts) end # Tell Phoenix to update the endpoint configuration # whenever the application is updated. def config_change(changed, _new, removed) do LSGWeb.Endpoint.config_change(changed, removed) :ok end end