Current section
Files
Jump to
Current section
Files
src/gladvent_ffi.erl
-module(gladvent_ffi).
-export([
find_files/2,
get_run/1,
open_file_exclusive/1,
write/2,
ensure_dir/1,
function_arity_one_exists/2,
module_exists/1
]).
find_files(Pattern, In) ->
Results = filelib:wildcard(binary_to_list(Pattern), binary_to_list(In)),
lists:map(fun list_to_binary/1, Results).
get_run(A) ->
{fun A:pt_1/1, fun A:pt_2/1}.
open_file_exclusive(File) ->
file:open(File, [exclusive]).
to_gleam_result(Res) ->
case Res of
ok -> {ok, nil};
Err -> Err
end.
write(IODevice, Charlist) ->
to_gleam_result(file:write(IODevice, Charlist)).
ensure_dir(Dir) ->
to_gleam_result(filelib:ensure_dir(Dir)).
module_exists(ModuleName) ->
case code:ensure_loaded(ModuleName) of
{module, _} ->
true;
{error, _} ->
false
end.
function_arity_one_exists(ModuleName, Fn) ->
case erlang:function_exported(ModuleName, Fn, 1) of
true ->
{ok, fun ModuleName:Fn/1};
false ->
{error, nil}
end.