Current section
Files
Jump to
Current section
Files
src/rebar3_project_utils.erl
-module(rebar3_project_utils).
-export([init/1]).
-define(DEFAULT_PROVIDERS, [rebar3_lint_prv, rebar3_check_deps_prv]).
-spec init(rebar_state:t()) -> {ok, rebar_state:t()}.
init(State) ->
%% get list of providers to initalize
Providers1 = add_release_providers(rebar_state:get(State, relx, undefined), ?DEFAULT_PROVIDERS),
Providers2 = add_bump_provider(rebar_state:get(State, escript_name, undefined), Providers1),
%% initialize providers
FinalState = init_providers(State, Providers2),
%% return
{ok, FinalState}.
%%======================================================================
%% Private functions
%%======================================================================
init_providers(State, Providers) ->
lists:foldl( fun(Provider, AccState) ->
{ok, NewState} = Provider:init(AccState),
NewState
end, State, Providers).
add_release_providers(undefined, Providers) ->
%% not a release
Providers;
add_release_providers(_, Providers) ->
%% release. add deb provider
Providers ++ [rebar3_deb_prv].
add_bump_provider(undefined, Providers) ->
%% not an escript. add bump provider
Providers ++ [rebar3_bump_prv];
add_bump_provider(_, Providers) ->
%% escript.
Providers.