diff options
Diffstat (limited to 'priv/templates/plugin.erl')
-rw-r--r-- | priv/templates/plugin.erl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/priv/templates/plugin.erl b/priv/templates/plugin.erl new file mode 100644 index 0000000..abf4648 --- /dev/null +++ b/priv/templates/plugin.erl @@ -0,0 +1,33 @@ +-module({{name}}). +-behaviour(provider). + +-export([init/1, do/1, format_error/1]). + +-define(PROVIDER, {{name}}). +-define(DEPS, [app_discovery]). + +%% =================================================================== +%% Public API +%% =================================================================== +-spec init(rebar_state:t()) -> {ok, rebar_state:t()}. +init(State) -> + Provider = providers:create([ + {name, ?PROVIDER}, % The 'user friendly' name of the task + {module, ?MODULE}, % The module implementation of the task + {bare, true}, % The task can be run by the user, always true + {deps, ?DEPS}, % The list of dependencies + {example, "rebar3 {{name}}"}, % How to use the plugin + {opts, []}, % list of options understood by the plugin + {short_desc, "{{desc}}"}, + {desc, "{{desc}}"} + ]), + {ok, rebar_state:add_provider(State, Provider)}. + + +-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}. +do(State) -> + {ok, State}. + +-spec format_error(any()) -> iolist(). +format_error(Reason) -> + io_lib:format("~p", [Reason]). |