Adapt for running from escript.
This commit is contained in:
@@ -1072,12 +1072,36 @@ get_priv_dir() ->
|
|||||||
case code:priv_dir(sqlite3) of
|
case code:priv_dir(sqlite3) of
|
||||||
{error, bad_name} ->
|
{error, bad_name} ->
|
||||||
%% application isn't in path, fall back
|
%% application isn't in path, fall back
|
||||||
|
case is_escript() of
|
||||||
|
{true,Escript} ->
|
||||||
|
io:format("Escript = ~p~n", [Escript]),
|
||||||
|
{Pref,Suf} = lists:split(erlang:length(Escript), Which),
|
||||||
|
io:format("Pref = ~p~n", [Pref]),
|
||||||
|
io:format("Suf = ~p~n", [Suf]),
|
||||||
|
RootDir = filename:dirname(filename:dirname(Pref)),
|
||||||
|
AppsDir = filename:join(RootDir, "lib"),
|
||||||
|
io:format("AppsDir = ~p~n", [AppsDir]),
|
||||||
|
SqDir = filename:dirname(filename:dirname(Suf)),
|
||||||
|
filename:join([AppsDir, [$.|SqDir], "priv"]); % prepend "." to suffix that starts with "/"
|
||||||
|
false ->
|
||||||
{?MODULE, _, FileName} = code:get_object_code(?MODULE),
|
{?MODULE, _, FileName} = code:get_object_code(?MODULE),
|
||||||
filename:join(filename:dirname(FileName), "../priv");
|
filename:join(filename:dirname(FileName), "../priv")
|
||||||
|
end;
|
||||||
Dir ->
|
Dir ->
|
||||||
Dir
|
Dir
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
is_escript() ->
|
||||||
|
case erlang:function_exported(escript, script_name, 0) of
|
||||||
|
true ->
|
||||||
|
try
|
||||||
|
{true, filename:absname(escript:script_name())}
|
||||||
|
catch
|
||||||
|
_:_ -> false
|
||||||
|
end;
|
||||||
|
false -> false
|
||||||
|
end.
|
||||||
|
|
||||||
-define(SQL_EXEC_COMMAND, 2).
|
-define(SQL_EXEC_COMMAND, 2).
|
||||||
-define(SQL_CREATE_FUNCTION, 3).
|
-define(SQL_CREATE_FUNCTION, 3).
|
||||||
-define(SQL_BIND_AND_EXEC_COMMAND, 4).
|
-define(SQL_BIND_AND_EXEC_COMMAND, 4).
|
||||||
|
|||||||
Reference in New Issue
Block a user