Current section

Files

Jump to
finitomata lib application.ex
Raw

lib/application.ex

defmodule Finitomata.Application do
@moduledoc false
use Application
@impl true
@doc false
def start(_type \\ :normal, _args \\ []) do
children =
case Application.get_env(:finitomata, :start_as) do
Finitomata ->
[Finitomata]
{Finitomata, name} when is_atom(name) ->
[{Finitomata, name}]
distributed when distributed in [Infinitomata, :distributed] ->
[Infinitomata]
{distributed, name} when is_atom(name) and distributed in [Infinitomata, :distributed] ->
[{Infinitomata, name}]
nil ->
[]
_ ->
raise ArgumentError,
"`:start_as` key is expected to be `{Finitomata, name}` or `{Infinitomata, name}`"
end
Supervisor.start_link(children, strategy: :one_for_one)
end
end