A comprehensive LFE rebar3 plugin for all your LFE tooling needs
About ↟
This plugin originally started life as a shell script (lfetool
-- there's
even a T-shirt for it!), then it toyed with integrating with rebar
(the
original). Around that time, though, rebar3
was under initial development,
and LFE took a chance on it as an early adopter. This lead to a whole series of
LFE plugins, but after a few years momentum was lost.
Those early rebar3
efforts have been combined into a single plugin in this
project, with many updates and using all the latest approaches developed in
rebar3
's now mature ecosystem.
Features ↟
- Create new LFE projects:
rebar3 new lfe-lib
rebar3 new lfe-main
rebar3 new lfe-escript
rebar3 new lfe-app
rebar3 new lfe-release
- Create new LFE behaviour files:
rebar3 new lfe-sup name=my-sup
rebar3 new lfe-server name=my-server
rebar3 new lfe-statem-handle-event name=my-statem
rebar3 new lfe-statem-state-functions name=my-statem
- Start up an LFE REPL:
rebar3 lfe repl
- Compile LFE source code:
rebar3 lfe compile
- Run tests using the LFE testing library (wrapper for eunit)
rebar3 lfe ltest
rebar3 lfe ltest -tunit
rebar3 lfe ltest -tsystem
rebar3 lfe ltest -tintegration
rebar3 lfe ltest -tall
- Run an LFE project's
main/1
function as an lfescript (runrebar3 new lfe-main
to see an example):rebar3 lfe run
rebar3 lfe run -- 1 2 5
rebar3 lfe run -main some/path/main.lfe
- Escriptize an LFE escript project:
rebar3 ecsriptize
- Run an escriptized LFE escript project:
rebar3 lfe run-ecsript
- Generate an LFE/OTP release
rebar3 release
- Run an LFE/OTP release project's release script (
COMMAND
can bestart
,stop
,status
,ping
, etc.):rebar3 lfe run-release COMMAND
- Convert LFE data files to Erlang data file
rebar3 lfe confabulate lfe-data.lfe erl_data.erl
- Cleanup
rebar3 lfe clean
rebar3 lfe clean-build
rebar3 lfe clean-cache
rebar3 lfe clean-all
- Metadata
rebar3 lfe versions
Setup ↟
Add the plugin to your rebar.config
(stable):
{plugins, [
{rebar3_lfe, "0.3.1"}
]}.
Or, if you want to use the current development branch (unstable):
{plugins, [
{rebar3_lfe,
{git, "https://github.com/lfe-rebar3/rebar3_lfe.git", {branch, "release/0.4.x"}}}
]}.
You may need to upgrade rebar3_lfe
at some point, as older versions will not work with newer versions of rebar3
.
In order to successfully upgrade the plugin globally, first edit ~/.config/rebar3/rebar.config
(replace release/0.4.x
with the desired branch):
{plugins, [
{rebar3_lfe, {git, "https://github.com/lfe-rebar3/rebar3_lfe.git", {branch, "release/0.4.x"}}}
]}.
Then clear the rebar3 plugin cache:
$ rm -rf ~/.cache/rebar3/plugins/*lfe*
Finally, run:
$ rebar3 plugins upgrade rebar3_lfe
You can check whether the version upgrade was successful with:
$ rebar3 lfe versions
(#(apps ())
#(languages
(#(lfe "2.1.1") #(erlang "25") #(emulator "13.0") #(driver_version "3.3")))
#(tooling (#(rebar "3.18.0") #(rebar3_lfe "0.4.3"))))
Documentation ↟
Detailed usage is provided in the project documentation.