Find file
Fetching contributors…
Cannot retrieve contributors at this time
83 lines (62 sloc) 2 KB

Rebar Templates


This might really only be useful for me, but I thought I would share the
Rebar templates that I have written to streamline my Erlang development.

So far it only consists of templates for the following:

  • ejabberd module
  • OTP gen_server callback modules
  • OTP gen_event callback modules
  • simple rebar project layout
  • escript starter script
  • OTP application and supervisor callback modules
  • Nitrogen page handler (for Nitrogen v2+)


If you don’t already you can clone this Git repository in your ${HOME}/.rebar/templates directory, i.e.:

 $ git clone git:// ~/.rebar/templates

(Thanks @dizzyd for the pointer.)

Alternatively you can add this as a submodule under ${PROJECT_ROOT}/priv/templates if you want to use
these templates just for a particular project.



  • Ahmed D. Omar – bug fix in ejabberdmod template (s/init\/7/init\/2/ in exports).


Rebar Project Layout

If you want to create a new rebar directory layout for your new project you can do the following:

 $ mkdir project_name
 $ cd project_name
 $ rebar create template=project project_name=project_name description="Describe your project here."

This will generate 6 directories and 4 files by default that are organized like the following:

. ├── deps/ ├── ebin/ ├── Emakefile ├── include/ ├── Makefile ├── priv/ ├── README ├── rebar.config ├── src/ └── tests/

ejabberd Module

To generate a stub of an ejabberd extension module that intercepts sent and received packets you can do the following:

%% inside your rebar based project directory $ rebar create template=ejabberdmod name=mod_name_here