Expose reference_name_to_id
This commit is contained in:
@@ -211,15 +211,13 @@ geef_reference_to_id(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||
memcpy(name, bin.data, bin.size);
|
||||
name[bin.size] = '\0';
|
||||
|
||||
if (git_reference_name_to_id(&id, repo->repo, name) < 0) {
|
||||
enif_release_binary(&bin);
|
||||
if (git_reference_name_to_id(&id, repo->repo, name) < 0)
|
||||
return geef_error(env);
|
||||
}
|
||||
|
||||
if (geef_oid_bin(&bin, &id) < 0)
|
||||
return atoms.error;
|
||||
|
||||
return enif_make_binary(env, &bin);
|
||||
return enif_make_tuple2(env, atoms.ok, enif_make_binary(env, &bin));
|
||||
}
|
||||
|
||||
ERL_NIF_TERM
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-module(geef_ref).
|
||||
|
||||
-export([lookup/2, resolve/1, target/1]).
|
||||
-export([lookup/2, resolve/1, target/1, name_to_id/2]).
|
||||
|
||||
-include("geef_records.hrl").
|
||||
|
||||
@@ -33,3 +33,12 @@ target(#ref{handle=Handle,type=symbolic}) ->
|
||||
target(#ref{handle=Handle,type=oid}) ->
|
||||
Oid = geef:reference_target(Handle),
|
||||
#oid{oid=Oid}.
|
||||
|
||||
-spec name_to_id(repo(), iolist()) -> {ok, oid()} | {error, binary()}.
|
||||
name_to_id(#repo{handle=Handle}, Name) ->
|
||||
case geef:reference_to_id(Handle, Name) of
|
||||
{ok, Oid} ->
|
||||
{ok, #oid{oid=Oid}};
|
||||
Other ->
|
||||
Other
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user