@ -1,5 +1,6 @@
defmodule Pleroma.Application do
use Application
import Supervisor.Spec
@name " Pleroma "
@version Mix.Project . config ( ) [ :version ]
@ -11,7 +12,6 @@ defmodule Pleroma.Application do
# for more information on OTP Applications
@env Mix . env ( )
def start ( _type , _args ) do
import Supervisor.Spec
import Cachex.Spec
# Define workers and child supervisors to be supervised
@ -20,10 +20,6 @@ defmodule Pleroma.Application do
# Start the Ecto repository
supervisor ( Pleroma.Repo , [ ] ) ,
worker ( Pleroma.Emoji , [ ] ) ,
# Start the endpoint when the application starts
supervisor ( Pleroma.Web.Endpoint , [ ] ) ,
# Start your own worker by calling: Pleroma.Worker.start_link(arg1, arg2, arg3)
# worker(Pleroma.Worker, [arg1, arg2, arg3]),
worker (
Cachex ,
[
@ -63,20 +59,17 @@ defmodule Pleroma.Application do
] ,
id : :cachex_idem
) ,
worker ( Pleroma.Web.Federator , [ ] ) ,
worker ( Pleroma.Web.Federator.RetryQueue , [ ] ) ,
worker ( Pleroma. Gopher.Serve r, [ ] ) ,
worker ( Pleroma. Web.Federato r, [ ] ) ,
worker ( Pleroma.Stats , [ ] )
] ++
if @env == :test ,
do : [ ] ,
else :
[ worker ( Pleroma.Web.Streamer , [ ] ) ] ++
if (
! chat_enabled ( ) ,
do : [ ] ,
else : [ worker ( Pleroma.Web.ChatChannel.ChatChannelState , [ ] ) ]
)
streamer_child ( ) ++
chat_child ( ) ++
[
# Start the endpoint when the application starts
supervisor ( Pleroma.Web.Endpoint , [ ] ) ,
worker ( Pleroma.Gopher.Server , [ ] )
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
# for other strategies and supported options
@ -84,7 +77,20 @@ defmodule Pleroma.Application do
Supervisor . start_link ( children , opts )
end
defp chat_enabled do
Application . get_env ( :pleroma , :chat , [ ] ) |> Keyword . get ( :enabled )
if Mix . env ( ) == :test do
defp streamer_child ( ) , do : [ ]
defp chat_child ( ) , do : [ ]
else
defp streamer_child ( ) do
[ worker ( Pleroma.Web.Streamer , [ ] ) ]
end
defp chat_child ( ) do
if Pleroma.Config . get ( [ :chat , :enabled ] ) do
[ worker ( Pleroma.Web.ChatChannel.ChatChannelState , [ ] ) ]
else
[ ]
end
end
end
end