From 878f6a465675ab2cd94f802a7a06765ef92df49a Mon Sep 17 00:00:00 2001 From: Anton Makarov Date: Wed, 10 Sep 2025 15:00:29 +0300 Subject: [PATCH] Adapt for running from escript (fix 5). --- src/esqlite3_nif.erl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/esqlite3_nif.erl b/src/esqlite3_nif.erl index 031656b..ba92f6f 100644 --- a/src/esqlite3_nif.erl +++ b/src/esqlite3_nif.erl @@ -88,12 +88,23 @@ init() -> %% @private get_priv_dir() -> + case code:priv_dir(esqlite) of + Dir when is_list(Dir) -> + case filelib:is_dir(Dir) of + true -> Dir; + false -> try_escript() + end; + {error, bad_name} -> "priv" + end. + +%% @private +try_escript() -> case is_escript() of {true,Escript} -> io:format("Escript = ~p~n", [Escript]), - Which = code:which(esqlite), - io:format("Which = ~p~n", [Which]), - {Pref,Suf} = lists:split(erlang:length(Escript), Which), + PrivDir = code:priv_dir(esqlite), + io:format("PrivDir = ~p~n", [PrivDir]), + {Pref,Suf} = lists:split(erlang:length(Escript), PrivDir), io:format("Pref = ~p~n", [Pref]), io:format("Suf = ~p~n", [Suf]), RootDir = filename:dirname(filename:dirname(Pref)),