43 lines
1.4 KiB
Erlang
43 lines
1.4 KiB
Erlang
%% This module, when loaded as a plugin, overrides the default `install_deps`
|
|
%% provider and erases the dependencies from the rebar3 state, when
|
|
%% REBAR_IGNORE_DEPS is true.
|
|
|
|
-module(rebar_ignore_deps).
|
|
|
|
-export([init/1, do/1, format_error/1]).
|
|
|
|
init(State0) ->
|
|
case os:getenv("REBAR_IGNORE_DEPS", "") of
|
|
"" ->
|
|
{ok, State0};
|
|
_ ->
|
|
do_init(State0)
|
|
end.
|
|
|
|
do_init(State0) ->
|
|
State1 = rebar_state:allow_provider_overrides(State0, true),
|
|
Provider = providers:create(
|
|
[
|
|
{name, install_deps}, %% override the default install_deps provider
|
|
{module, ?MODULE},
|
|
{bare, false},
|
|
{deps, [app_discovery]},
|
|
{example, undefined},
|
|
{opts, []},
|
|
{short_desc, ""},
|
|
{desc, ""}
|
|
]),
|
|
State2 = rebar_state:add_provider(State1, Provider),
|
|
{ok, rebar_state:allow_provider_overrides(State2, false)}.
|
|
|
|
do(State0) ->
|
|
io:format("Ignoring deps...~n"),
|
|
Profiles = rebar_state:current_profiles(State0),
|
|
State = lists:foldl(fun(P, Acc0) ->
|
|
Acc = rebar_state:set(Acc0, {deps, P}, []),
|
|
rebar_state:set(Acc, {parsed_deps, P}, [])
|
|
end, State0, Profiles),
|
|
{ok, State}.
|
|
|
|
format_error(Reason) ->
|
|
io_lib:format("~p", [Reason]).
|