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: ```erlang {ok, Repo} = geef_repo:open("."). Workdir = geef_repo:workdir(Repo). {ok, Blob} = geef_blob:lookup(Repo, geef_oid:parse("abcde...")). ``` Elixir ====== Most functions are available from the elixir modules so you can make use of some elixir-specific things, like `Repository.open!`, or `Reference.resolve!`. ```elixir alias Geef.Repository alias Geef.Reference repo = Repository.open!(".") ref = Reference.lookup!(repo, "HEAD") |> Reference.resolve! ``` references, objects, etc are elixir records. Trees implement the Access protocol ```elixir Reference[name: name] = Reference.lookup!(repo, "refs/heads/master") IO.puts name {:ok, tree} = Tree.lookup(repo, "abcde...") IO.inspect tree["src/geef_pkt.erl"] ``` CONTRIBUTING ============== Fork carlosmn/geef on GitHub, make it awesomer (preferably in a branch named for the topic), send a pull request. AUTHORS ============== * Carlos Martín Nieto * Scott Chacon LICENSE ============== MIT.