2013-06-05 01:49:31 +02:00
2013-06-05 01:40:08 +02:00
2013-06-05 00:33:11 +02:00
2013-05-31 14:21:59 +02:00
2013-03-02 12:34:21 +01:00
2013-06-05 01:49:31 +02:00
2012-08-14 00:50:44 +02:00

Geef (Git NIF)

Geef is a simple Erlang NIF that exposes some of the libgit2 library functions to Erlang.

INSTALLING AND RUNNING

First you need to install libgit2:

$ git clone git://github.com/libgit2/libgit2.git
$ cd libgit2
$ make
$ make install

Now, if you have Erlang OTP_R13B04 installed, you can compile this NIF to run in it.

$ git clone git://github.com/carlosmn/geef.git
$ cd geef
$ make
$ mix # if you want to build the elixir modules

The API looks basically like this:

{ok, Repo} = geef_repo:open(".").
Workdir = geef_repo:workdir(Repo).
{ok, Blob} = geef_blob:lookup(Repo, geef_oid:parse("abcde...")).

Elixir

There are wrappers for elixir which make use of some elixir-specific things, like Repository.open!, or Reference.resolve!.

alias Geef.Repository
alias Geef.Reference
repo = Repository.open!(".")
ref = Reference.lookup!(repo. "HEAD") |> Reference.resolve!

Of course, you could also do

ref = Repository.open! "." |> Reference.lookup! "HEAD" |> Reference.resolve!

but then you would leak the repository process.

CONTRIBUTING

Fork carlosmn/geef on GitHub, make it awesomer (preferably in a branch named for the topic), send a pull request.

AUTHORS

Scott Chacon schacon@gmail.com Carlos Martín Nieto cmn@dwim.me

LICENSE

MIT.

Description
No description provided
Readme 357 KiB
Languages
C 44%
Erlang 39.6%
Elixir 16.2%
Makefile 0.2%