Browse Source

if a provider of the same namespace and name already exists, skip adding new provider

pull/934/head
Tristan Sloughter 9 years ago
parent
commit
740d8a3c74
4 changed files with 25 additions and 7 deletions
  1. +3
    -3
      rebar.config
  2. +3
    -3
      rebar.lock
  3. +1
    -0
      src/rebar.app.src
  4. +18
    -1
      src/rebar_state.erl

+ 3
- 3
rebar.config View File

@ -1,13 +1,13 @@
%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*-
%% ex: ts=4 sw=4 ft=erlang et
{deps, [{erlware_commons, "0.16.0"},
{deps, [{erlware_commons, "0.18.0"},
{ssl_verify_hostname, "1.0.5"},
{certifi, "0.1.1"},
{providers, "1.5.0"},
{providers, "1.6.0"},
{getopt, "0.8.2"},
{bbmustache, "1.0.4"},
{relx, "3.8.0"},
{relx, "3.9.0"},
{cf, "0.2.1"},
{cth_readable, "1.1.0"},
{eunit_formatters, "0.3.1"}]}.

+ 3
- 3
rebar.lock View File

@ -2,9 +2,9 @@
{<<"certifi">>,{pkg,<<"certifi">>,<<"0.1.1">>},0},
{<<"cf">>,{pkg,<<"cf">>,<<"0.2.1">>},0},
{<<"cth_readable">>,{pkg,<<"cth_readable">>,<<"1.1.0">>},0},
{<<"erlware_commons">>,{pkg,<<"erlware_commons">>,<<"0.16.0">>},0},
{<<"erlware_commons">>,{pkg,<<"erlware_commons">>,<<"0.18.0">>},0},
{<<"eunit_formatters">>,{pkg,<<"eunit_formatters">>,<<"0.3.1">>},0},
{<<"getopt">>,{pkg,<<"getopt">>,<<"0.8.2">>},0},
{<<"providers">>,{pkg,<<"providers">>,<<"1.5.0">>},0},
{<<"relx">>,{pkg,<<"relx">>,<<"3.8.0">>},0},
{<<"providers">>,{pkg,<<"providers">>,<<"1.6.0">>},0},
{<<"relx">>,{pkg,<<"relx">>,<<"3.9.0">>},0},
{<<"ssl_verify_hostname">>,{pkg,<<"ssl_verify_hostname">>,<<"1.0.5">>},0}].

+ 1
- 0
src/rebar.app.src View File

@ -27,6 +27,7 @@
certifi,
cth_readable,
relx,
cf,
inets,
eunit_formatters]},
{env, [

+ 18
- 1
src/rebar_state.erl View File

@ -370,7 +370,24 @@ providers(State, NewProviders) ->
-spec add_provider(t(), providers:t()) -> t().
add_provider(State=#state_t{providers=Providers}, Provider) ->
State#state_t{providers=[Provider | Providers]}.
Name = providers:impl(Provider),
Namespace = providers:namespace(Provider),
Module = providers:module(Provider),
case lists:any(fun(P) ->
case {providers:impl(P), providers:namespace(P)} of
{Name, Namespace} ->
?DEBUG("Not adding provider ~p ~p from module ~p because it already exists from module ~p",
[Namespace, Name, providers:module(P), Module]),
true;
_ ->
false
end
end, Providers) of
true ->
State;
false ->
State#state_t{providers=[Provider | Providers]}
end.
create_logic_providers(ProviderModules, State0) ->
try

Loading…
Cancel
Save