Переглянути джерело

more cleanup of old state usage

pull/760/head
Tristan Sloughter 9 роки тому
джерело
коміт
c7a7b309fd
1 змінених файлів з 20 додано та 23 видалено
  1. +20
    -23
      src/rebar_app_discover.erl

+ 20
- 23
src/rebar_app_discover.erl Переглянути файл

@ -31,7 +31,7 @@ do(State, LibDirs) ->
ParsedDeps = parse_profile_deps(Profile
,TopLevelApp
,ProfileDeps2
,StateAcc1
,rebar_state:opts(StateAcc1)
,StateAcc1),
rebar_state:set(StateAcc1, {parsed_deps, Profile}, ParsedDeps)
end, State, lists:reverse(CurrentProfiles)),
@ -74,32 +74,29 @@ format_error({missing_module, Module}) ->
merge_deps(AppInfo, State) ->
Default = rebar_state:default(State),
CurrentProfiles = rebar_state:current_profiles(State),
Name = rebar_app_info:name(AppInfo),
C = project_app_config(AppInfo, State),
%% We reset the opts here to default so no profiles are applied multiple times
AppState = rebar_state:apply_overrides(
rebar_state:apply_profiles(
rebar_state:new(reset_hooks(rebar_state:opts(State, Default)), C,
rebar_app_info:dir(AppInfo)), CurrentProfiles), Name),
AppState1 = rebar_state:overrides(AppState, rebar_state:get(AppState, overrides, [])),
AppInfo0 = rebar_app_info:update_opts(AppInfo, Default, C),
rebar_utils:check_min_otp_version(rebar_state:get(AppState1, minimum_otp_vsn, undefined)),
rebar_utils:check_blacklisted_otp_versions(rebar_state:get(AppState1, blacklisted_otp_vsns, [])),
CurrentProfiles = rebar_state:current_profiles(State),
Name = rebar_app_info:name(AppInfo0),
%% We reset the opts here to default so no profiles are applied multiple times
AppInfo1 = rebar_app_info:apply_overrides(rebar_state:overrides(State), AppInfo0),
AppInfo2 = rebar_app_info:apply_profiles(AppInfo1, CurrentProfiles),
AppState2 = rebar_state:set(AppState1, artifacts, []),
AppInfo2 = rebar_app_info:opts(AppInfo, rebar_state:opts(AppState2)),
rebar_utils:check_min_otp_version(rebar_app_info:get(AppInfo2, minimum_otp_vsn, undefined)),
rebar_utils:check_blacklisted_otp_versions(rebar_app_info:get(AppInfo2, blacklisted_otp_vsns, [])),
State1 = lists:foldl(fun(Profile, StateAcc) ->
handle_profile(Profile, Name, AppState1, StateAcc)
handle_profile(Profile, Name, AppInfo2, StateAcc)
end, State, lists:reverse(CurrentProfiles)),
{AppInfo2, State1}.
handle_profile(Profile, Name, AppState, State) ->
handle_profile(Profile, Name, AppInfo, State) ->
TopParsedDeps = rebar_state:get(State, {parsed_deps, Profile}, {[], []}),
TopLevelProfileDeps = rebar_state:get(State, {deps, Profile}, []),
AppProfileDeps = rebar_state:get(AppState, {deps, Profile}, []),
AppProfileDeps = rebar_app_info:get(AppInfo, {deps, Profile}, []),
AppProfileDeps2 = rebar_utils:tup_dedup(rebar_utils:tup_sort(AppProfileDeps)),
ProfileDeps2 = rebar_utils:tup_dedup(rebar_utils:tup_umerge(
rebar_utils:tup_sort(TopLevelProfileDeps)
@ -109,17 +106,17 @@ handle_profile(Profile, Name, AppState, State) ->
%% Only deps not also specified in the top level config need
%% to be included in the parsed deps
NewDeps = ProfileDeps2 -- TopLevelProfileDeps,
ParsedDeps = parse_profile_deps(Profile, Name, NewDeps, AppState, State1),
ParsedDeps = parse_profile_deps(Profile, Name, NewDeps, rebar_app_info:opts(AppInfo), State1),
State2 = rebar_state:set(State1, {deps, Profile}, ProfileDeps2),
rebar_state:set(State2, {parsed_deps, Profile}, TopParsedDeps++ParsedDeps).
parse_profile_deps(Profile, Name, Deps, AppState, State) ->
parse_profile_deps(Profile, Name, Deps, Opts, State) ->
DepsDir = rebar_prv_install_deps:profile_dep_dir(State, Profile),
Locks = rebar_state:get(State, {locks, Profile}, []),
rebar_app_utils:parse_deps(Name
,DepsDir
,Deps
,AppState
,rebar_state:opts(State, Opts)
,Locks
,1).
@ -139,10 +136,10 @@ maybe_reset_hooks(C, Dir, State) ->
C
end.
reset_hooks(State) ->
lists:foldl(fun(Key, StateAcc) ->
rebar_state:set(StateAcc, Key, [])
end, State, [post_hooks, pre_hooks, provider_hooks]).
%% reset_hooks(Opts) ->
%% lists:foldl(fun(Key, OptsAcc) ->
%% rebar_utils:set(OptsAcc, Key, [])
%% end, Opts, [post_hooks, pre_hooks, provider_hooks]).
-spec all_app_dirs(list(file:name())) -> list(file:name()).
all_app_dirs(LibDirs) ->

Завантаження…
Відмінити
Зберегти