From fcb2a082346054108f3f16cffe968450cf961976 Mon Sep 17 00:00:00 2001 From: href Date: Wed, 31 Jan 2018 20:36:42 +0100 Subject: import --- lib/lsg/application.ex | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 lib/lsg/application.ex (limited to 'lib/lsg/application.ex') diff --git a/lib/lsg/application.ex b/lib/lsg/application.ex new file mode 100644 index 0000000..73ec04d --- /dev/null +++ b/lib/lsg/application.ex @@ -0,0 +1,37 @@ +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 -- cgit v1.2.3