Browse Source

code cleanup

pull/3/head
Tristan Sloughter 10 years ago
parent
commit
e8ef242c8b
1 changed files with 44 additions and 37 deletions
  1. +44
    -37
      src/rebar_prv_install_deps.erl

+ 44
- 37
src/rebar_prv_install_deps.erl View File

@ -155,47 +155,23 @@ package_to_app(DepsDir, Packages, Pkg={_, Vsn}) ->
-spec update_src_deps(integer(), rebar_state:t(), boolean()) -> rebar_state:t().
update_src_deps(Level, State, Update) ->
SrcDeps = rebar_state:src_deps(State),
DepsDir = get_deps_dir(State),
case lists:foldl(fun(AppInfo, {SrcDepsAcc, PkgDepsAcc, StateAcc}) ->
Name = rebar_app_info:name(AppInfo),
Locks = rebar_state:get(State, locks, []),
case Update of
{true, UpdateName, UpdateLevel} ->
{_, _, _, DepLevel} = lists:keyfind(Name, 1, Locks),
case UpdateLevel < DepLevel
orelse Name =:= UpdateName of
true ->
case maybe_fetch(AppInfo, true) of
true ->
{AppInfo1, NewSrcDeps, NewPkgDeps} =
handle_dep(DepsDir, AppInfo),
AppInfo2 = rebar_app_info:dep_level(AppInfo1, Level),
{NewSrcDeps ++ SrcDepsAcc
,NewPkgDeps++PkgDepsAcc
,rebar_state:src_apps(StateAcc, AppInfo2)};
false ->
{SrcDepsAcc, PkgDepsAcc, State}
end;
false ->
{SrcDepsAcc, PkgDepsAcc, State}
end;
handle_update(AppInfo
,UpdateName
,UpdateLevel
,SrcDepsAcc
,PkgDepsAcc
,Level
,StateAcc);
_ ->
case maybe_fetch(AppInfo, false) of
true ->
{AppInfo1, NewSrcDeps, NewPkgDeps} =
handle_dep(DepsDir, AppInfo),
AppInfo2 = rebar_app_info:dep_level(AppInfo1, Level),
{NewSrcDeps ++ SrcDepsAcc
,NewPkgDeps++PkgDepsAcc
,rebar_state:src_apps(StateAcc, AppInfo2)};
false ->
{AppInfo1, NewSrcDeps, NewPkgDeps} =
handle_dep(DepsDir, AppInfo),
AppInfo2 = rebar_app_info:dep_level(AppInfo1, Level),
{NewSrcDeps ++ SrcDepsAcc
,NewPkgDeps++PkgDepsAcc
,rebar_state:src_apps(StateAcc, AppInfo2)}
end
maybe_fetch(AppInfo, false),
handle_dep(AppInfo
,SrcDepsAcc
,PkgDepsAcc
,Level
,StateAcc)
end
end, {[], rebar_state:pkg_deps(State), State}, SrcDeps) of
{[], NewPkgDeps, State1} ->
@ -206,6 +182,37 @@ update_src_deps(Level, State, Update) ->
update_src_deps(Level+1, State3, Update)
end.
handle_update(AppInfo, UpdateName, UpdateLevel, SrcDeps, PkgDeps, Level, State) ->
Name = rebar_app_info:name(AppInfo),
Locks = rebar_state:get(State, locks, []),
{_, _, _, DepLevel} = lists:keyfind(Name, 1, Locks),
case UpdateLevel < DepLevel
orelse Name =:= UpdateName of
true ->
case maybe_fetch(AppInfo, true) of
true ->
handle_dep(AppInfo
,SrcDeps
,PkgDeps
,Level
,State);
false ->
{SrcDeps, PkgDeps, State}
end;
false ->
{SrcDeps, PkgDeps, State}
end.
handle_dep(AppInfo, SrcDeps, PkgDeps, Level, State) ->
DepsDir = get_deps_dir(State),
{AppInfo1, NewSrcDeps, NewPkgDeps} =
handle_dep(DepsDir, AppInfo),
AppInfo2 = rebar_app_info:dep_level(AppInfo1, Level),
{NewSrcDeps ++ SrcDeps
,NewPkgDeps++PkgDeps
,rebar_state:src_apps(State, AppInfo2)}.
-spec handle_dep(file:filename_all(), rebar_app_info:t()) ->
{rebar_app_info:t(), [rebar_app_info:t()], [pkg_dep()]}.
handle_dep(DepsDir, AppInfo) ->

Loading…
Cancel
Save