40 lines
955 B
Erlang
40 lines
955 B
Erlang
-module(geef_repo).
|
|
|
|
-export([open/1, init/2, path/1, workdir/1, is_bare/1, references/1]).
|
|
|
|
-include("geef_records.hrl").
|
|
|
|
-spec path(repo()) -> binary().
|
|
path(#repo{handle=Handle}) ->
|
|
geef:repository_get_path(Handle).
|
|
|
|
-spec workdir(repo()) -> binary().
|
|
workdir(#repo{handle=Handle}) ->
|
|
geef:repository_get_workdir(Handle).
|
|
|
|
-spec is_bare(repo()) -> boolean().
|
|
is_bare(#repo{handle=Handle}) ->
|
|
geef:repository_is_bare(Handle).
|
|
|
|
-spec references(repo()) -> [binary()].
|
|
references(#repo{handle=Handle}) ->
|
|
geef:reference_list(Handle).
|
|
|
|
-spec open(iolist()) -> {ok, repo()} | {error, term()}.
|
|
open(Path) ->
|
|
case geef:repository_open(Path) of
|
|
{ok, Handle} ->
|
|
{ok, #repo{handle=Handle}};
|
|
Other ->
|
|
Other
|
|
end.
|
|
|
|
-spec init(iolist(), boolean()) -> {ok, repo()} | {error, term()}.
|
|
init(Path, Bare) ->
|
|
case geef:repository_init(Path, Bare) of
|
|
{ok, Handle} ->
|
|
{ok, #repo{handle=Handle}};
|
|
Other ->
|
|
Other
|
|
end.
|