diff options
author | href <href@random.sh> | 2018-01-31 20:36:42 +0100 |
---|---|---|
committer | href <href@random.sh> | 2018-01-31 20:36:42 +0100 |
commit | fcb2a082346054108f3f16cffe968450cf961976 (patch) | |
tree | 8e7d2eb9eeebf854e62e08c29b147f34dfeb1881 /lib/lsg/application.ex |
import
Diffstat (limited to 'lib/lsg/application.ex')
-rw-r--r-- | lib/lsg/application.ex | 37 |
1 files changed, 37 insertions, 0 deletions
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 |