Make it more erlang-esque
pmods are going away, use prefixed namespaces.
This commit is contained in:
16
src/geef.erl
16
src/geef.erl
@@ -1,9 +1,13 @@
|
||||
-module(geef).
|
||||
-export([hex_to_raw/1, repository/1, repository_get_path/1, repository_get_odb/1,
|
||||
repository_init/2, repository_is_bare/1, repository_get_workdir/1, reference_list/1,
|
||||
-export([hex_to_raw/1, reference_list/1,
|
||||
reference_to_id/2, reference_glob/2, reference_lookup/2, reference_resolve/1,
|
||||
reference_id/1, reference_type/1, odb_object_exists/2]).
|
||||
|
||||
% repository operations
|
||||
-export([repository_get_path/1, repository_get_odb/1, repository_open/1, repository_init/2,
|
||||
repository_is_bare/1, repository_get_workdir/1]).
|
||||
|
||||
% oid parsing
|
||||
-export([oid_fmt/1, oid_parse/1]).
|
||||
|
||||
-on_load(load_enif/0).
|
||||
@@ -50,14 +54,6 @@ reference_resolve(_Handle) ->
|
||||
reference_type(_Handle) ->
|
||||
nif_error(?LINE).
|
||||
|
||||
repository(Path) ->
|
||||
case repository_open(Path) of
|
||||
{ok, Handle} ->
|
||||
repository:new(Handle);
|
||||
Other ->
|
||||
Other
|
||||
end.
|
||||
|
||||
odb_object_exists(_Val, _Val) ->
|
||||
nif_error(?LINE).
|
||||
|
||||
|
||||
12
src/geef_oid.erl
Normal file
12
src/geef_oid.erl
Normal file
@@ -0,0 +1,12 @@
|
||||
-module(geef_oid).
|
||||
|
||||
-export([parse/1, fmt/1]).
|
||||
|
||||
-spec fmt(binary()) -> binary().
|
||||
fmt(Oid) ->
|
||||
geef:oid_fmt(Oid).
|
||||
|
||||
|
||||
-spec parse(binary()) -> binary().
|
||||
parse(Sha) ->
|
||||
geef:oid_parse(Sha).
|
||||
35
src/geef_repo.erl
Normal file
35
src/geef_repo.erl
Normal file
@@ -0,0 +1,35 @@
|
||||
-module(geef_repo).
|
||||
|
||||
-export([open/1, init/2, path/1, workdir/1, is_bare/1, references/1]).
|
||||
|
||||
-record(repo, {handle}).
|
||||
|
||||
path(#repo{handle=Handle}) ->
|
||||
geef:repository_get_path(Handle).
|
||||
|
||||
workdir(#repo{handle=Handle}) ->
|
||||
geef:repository_get_workdir(Handle).
|
||||
|
||||
is_bare(#repo{handle=Handle}) ->
|
||||
geef:repository_is_bare(Handle).
|
||||
|
||||
references(#repo{handle=Handle}) ->
|
||||
geef:reference_list(Handle).
|
||||
|
||||
-spec open(iolist()) -> {ok, term()} | {error, term()}.
|
||||
open(Path) ->
|
||||
case geef:repository_open(Path) of
|
||||
{ok, Handle} ->
|
||||
{ok, #repo{handle=Handle}};
|
||||
Other ->
|
||||
Other
|
||||
end.
|
||||
|
||||
-spec init(iolist(), boolean()) -> {ok, term()} | {error, term()}.
|
||||
init(Path, Bare) ->
|
||||
case geef:repository_init(Path, Bare) of
|
||||
{ok, Handle} ->
|
||||
{ok, #repo{handle=Handle}};
|
||||
Other ->
|
||||
Other
|
||||
end.
|
||||
@@ -1,38 +0,0 @@
|
||||
-module(repository, [Handle]).
|
||||
-export([path/0, workdir/0, bare/0, references/0, reference_glob/1, odb/0, lookup/1]).
|
||||
|
||||
-spec path() -> binary().
|
||||
path() ->
|
||||
geef:repository_get_path(Handle).
|
||||
|
||||
-spec workdir() -> binary().
|
||||
workdir() ->
|
||||
geef:repository_get_workdir(Handle).
|
||||
|
||||
-spec bare() -> boolean().
|
||||
bare() ->
|
||||
geef:repository_is_bare(Handle).
|
||||
|
||||
-spec references() -> [binary()] | [].
|
||||
references() ->
|
||||
geef:reference_list(Handle).
|
||||
|
||||
-spec reference_glob(binary()) -> [binary()].
|
||||
reference_glob(Glob) ->
|
||||
geef:reference_glob(Handle, Glob).
|
||||
|
||||
odb() ->
|
||||
case geef:repository_get_odb(Handle) of
|
||||
{ok, Odb} ->
|
||||
odb:new(Odb);
|
||||
Other ->
|
||||
Other
|
||||
end.
|
||||
|
||||
lookup(Refname) ->
|
||||
case geef:reference_lookup(Handle, Refname) of
|
||||
{ok, Ref} ->
|
||||
reference:new(Ref);
|
||||
Other ->
|
||||
Other
|
||||
end.
|
||||
Reference in New Issue
Block a user