Current section

Files

Jump to
ex_esdb lib app.ex
Raw

lib/app.ex

defmodule ExESDB.App do
@moduledoc """
This module is used to start the ExESDB system.
"""
use Application,
otp_app: :ex_esdb
alias ExESDB.Options, as: Options
alias ExESDB.Themes, as: Themes
require Logger
require Phoenix.PubSub
@impl true
def start(_type, _args) do
config = Options.app_env()
store_id = config[:store_id]
Logger.warning("Attempting to start ExESDB with options: #{inspect(config, pretty: true)}")
children = [
{ExESDB.System, config}
]
opts = [strategy: :one_for_one, name: ExESDB.Supervisor]
res = Supervisor.start_link(children, opts)
IO.puts("#{Themes.app(self(), "is UP for store #{inspect(store_id)}")}")
res
end
@impl true
def stop(state) do
ExESDB.System.stop(:normal)
Logger.warning("STOPPING APP #{inspect(state, pretty: true)}")
end
end