summaryrefslogtreecommitdiff
path: root/src/rebar3.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rebar3.erl')
-rw-r--r--src/rebar3.erl32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/rebar3.erl b/src/rebar3.erl
index 523b8b0..8fe6224 100644
--- a/src/rebar3.erl
+++ b/src/rebar3.erl
@@ -56,7 +56,7 @@ main(Args) ->
%% Erlang-API entry point
run(BaseState, Commands) ->
- _ = application:load(rebar),
+ start_and_load_apps(),
BaseState1 = rebar_state:set(BaseState, task, Commands),
BaseState2 = rebar_state:set(BaseState1, caller, api),
run_aux(BaseState2, Commands).
@@ -66,7 +66,7 @@ run(BaseState, Commands) ->
%% ====================================================================
run(RawArgs) ->
- _ = application:load(rebar),
+ start_and_load_apps(),
BaseState = init_config(),
BaseState1 = rebar_state:set(BaseState, caller, command_line),
@@ -83,16 +83,6 @@ run(RawArgs) ->
run_aux(BaseState2, RawArgs).
run_aux(State, RawArgs) ->
- %% Make sure crypto is running
- case crypto:start() of
- ok -> ok;
- {error,{already_started,crypto}} -> ok
- end,
- application:start(asn1),
- application:start(public_key),
- application:start(ssl),
- inets:start(),
-
State2 = case os:getenv("REBAR_PROFILE") of
false ->
State;
@@ -145,12 +135,12 @@ init_config() ->
%% We don't want to worry about global plugin install state effecting later
%% usage. So we throw away the global profile state used for plugin install.
GlobalConfigThrowAway = rebar_state:current_profiles(GlobalConfig, ["global"]),
- rebar_plugins:handle_plugins(global,
+ GlobalState = rebar_plugins:handle_plugins(global,
rebar_state:get(GlobalConfigThrowAway, plugins, []),
GlobalConfigThrowAway),
-
+ GlobalPlugins = rebar_state:providers(GlobalState),
GlobalConfig2 = rebar_state:set(GlobalConfig, plugins, []),
- rebar_state:new(GlobalConfig2, Config1);
+ rebar_state:providers(rebar_state:new(GlobalConfig2, Config1), GlobalPlugins);
false ->
rebar_state:new(Config1)
end,
@@ -266,3 +256,15 @@ handle_error(Error) ->
?DEBUG("Uncaught error: ~p", [Error]),
?INFO("When submitting a bug report, please include the output of `rebar3 report \"your command\"`", []),
erlang:halt(1).
+
+start_and_load_apps() ->
+ _ = application:load(rebar),
+ %% Make sure crypto is running
+ case crypto:start() of
+ ok -> ok;
+ {error,{already_started,crypto}} -> ok
+ end,
+ application:start(asn1),
+ application:start(public_key),
+ application:start(ssl),
+ inets:start().