Przeglądaj źródła

Merge pull request #465 from tsloughter/global_providers

don't lose global plugin providers
pull/466/head
Tristan Sloughter 10 lat temu
rodzic
commit
3827363288
2 zmienionych plików z 18 dodań i 16 usunięć
  1. +17
    -15
      src/rebar3.erl
  2. +1
    -1
      src/rebar_dir.erl

+ 17
- 15
src/rebar3.erl Wyświetl plik

@ -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().

+ 1
- 1
src/rebar_dir.erl Wyświetl plik

@ -34,7 +34,7 @@ base_dir(State) ->
-spec profile_dir(rebar_state:t(), [atom()]) -> file:filename_all().
profile_dir(State, Profiles) ->
{BaseDir, ProfilesStrings} = case [ec_cnv:to_list(P) || P <- Profiles] of
["global"] -> {?MODULE:global_cache_dir(State), [""]};
["global" | _] -> {?MODULE:global_cache_dir(State), [""]};
["default"] -> {rebar_state:get(State, base_dir, ?DEFAULT_BASE_DIR), ["default"]};
%% drop `default` from the profile dir if it's implicit and reverse order
%% of profiles to match order passed to `as`

Ładowanie…
Anuluj
Zapisz