mbbx6spp / Rebar Templates
Programming Languages
== Rebar Templates
=== Overview
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+)
=== Status
Many of these templates are from a past life in Erlang which are no longer maintained. I am in the process of culling/curating these templates while I upgrade to rebar3 and return to more active Erlang development.
Please be patient during this transition period.
=== rebar3
If you don't already you can clone this Git repository in your
${HOME}/.config/rebar3/templates
directory, like so:
[source,shell]
"${HOME}/.config/rebar3/templates"
$ git clone git://github.com/mbbx6spp/rebar-templates.git Be sure to update the globals
file with your preferred global values.
=== pre-rebar3
If you don't already you can clone this Git repository in your
${HOME}/.rebar/templates
directory, like so:
[source,shell]
"${HOME}/.rebar/templates"
$ git clone git://github.com/mbbx6spp/rebar-templates.git (Thanks link:http://twitter.com/dizzyd[@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.
=== Developer(s)
- link:http://twitter.com/SusanPotter[Susan Potter]
=== Contributor(s)
- link:http://twitter.com/spawn_think[Ahmed D. Omar] - bug fix in ejabberdmod
template (
s/init\/7/init\/2/
in exports).
=== Examples
=== Rebar Project Layout
If you want to create a new rebar directory layout for your new project you can do the following:
[source,shell]
project_name=project_name
description="Describe your project here."
$ mkdir project_name
$ cd project_name
$ rebar create template=project This will generate 6 directories and 4 files by default that are organized like the following:
[source,shell]
. ├── 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: