Current section

Files

Jump to
barrel_embed src barrel_embed_app.erl
Raw

src/barrel_embed_app.erl

%%%-------------------------------------------------------------------
%%% @doc barrel_embed application callback module
%%% @end
%%%-------------------------------------------------------------------
-module(barrel_embed_app).
-behaviour(application).
-export([start/2, stop/1]).
%%====================================================================
%% Application callbacks
%%====================================================================
start(_StartType, _StartArgs) ->
%% Setup preload BEFORE starting erlang_python so models are
%% preloaded during interpreter initialization
barrel_embed_preload:setup(),
%% Ensure erlang_python is started (should already be via application deps)
case application:ensure_all_started(erlang_python) of
{ok, _} -> ok;
{error, {already_started, _}} -> ok;
{error, Reason} ->
error_logger:error_msg("Failed to start erlang_python: ~p~n", [Reason])
end,
%% Ensure priv dir is in Python path (in case erlang_python was already running)
Venv = application:get_env(barrel_embed, venv, undefined),
barrel_embed_py:init(#{venv => Venv}),
barrel_embed_sup:start_link().
stop(_State) ->
ok.