summaryrefslogtreecommitdiff
path: root/priv/templates/plugin.erl
diff options
context:
space:
mode:
Diffstat (limited to 'priv/templates/plugin.erl')
-rw-r--r--priv/templates/plugin.erl33
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]).