Current section

Files

Jump to
spawn_statestores lib statestores supervisor.ex
Raw

lib/statestores/supervisor.ex

defmodule Statestores.Supervisor do
@moduledoc false
use Supervisor
import Statestores.Util, only: [load_lookup_adapter: 0, load_snapshot_adapter: 0]
def start_link(args) do
Supervisor.start_link(__MODULE__, args, name: __MODULE__)
end
def child_spec() do
%{
id: __MODULE__,
start: {__MODULE__, :start_link, [[]]}
}
end
@impl true
def init(_args) do
lookup_adapter = load_lookup_adapter()
snapshot_adapter = load_snapshot_adapter()
Statestores.Config.load()
Statestores.Migrator.migrate(snapshot_adapter)
Statestores.Migrator.migrate(lookup_adapter)
children = [
Statestores.Vault,
snapshot_adapter,
lookup_adapter
]
Supervisor.init(children, strategy: :one_for_one)
end
end