From: Mikael Magnusson <[email protected]> Including projects in project.repoapps led to "sinan dist" building a tarball containing multiple versions of the same app, if a project app was also available in the local repository with installed applications.
Signed-off-by: Mikael Magnusson <[email protected]> --- server/sinan/src/sin_depends.erl | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-) diff --git a/server/sinan/src/sin_depends.erl b/server/sinan/src/sin_depends.erl index e3a43b4..d2ab0f0 100644 --- a/server/sinan/src/sin_depends.erl +++ b/server/sinan/src/sin_depends.erl @@ -91,8 +91,9 @@ depends(BuildRef) -> ErtsVersion, ProjectApps, []), + RepoApps = get_repo_apps(ProjectApps, AllDeps), sin_build_config:store(BuildRef, "project.deps", AllDeps), - sin_build_config:store(BuildRef, "project.repoapps", AllDeps), + sin_build_config:store(BuildRef, "project.repoapps", RepoApps), save_deps(BuildRef, AllDeps), update_sigs(BuildRef). @@ -210,6 +211,26 @@ already_resolved(_, []) -> %%-------------------------------------------------------------------- %% @doc +%% Get list of dependencies excluding project apps. +%% @spec (ProjectApps, AllDeps) -> RepoApps +%% @end +%%-------------------------------------------------------------------- +get_repo_apps(ProjectApps, AllDeps) -> + get_repo_apps(ProjectApps, AllDeps, []). + +get_repo_apps(ProjectApps, [Dep | Deps], Acc) -> + case is_project_app(Dep, ProjectApps) of + true -> get_repo_apps(ProjectApps, Deps, Acc); + false -> get_repo_apps(ProjectApps, Deps, [Dep | Acc]) + end; +get_repo_apps(_ProjectApps, [], Acc) -> + Acc. + +is_project_app({Name, _Deps, _Version, _Location}, ProjectApps) -> + lists:keymember(Name, 1, ProjectApps). + +%%-------------------------------------------------------------------- +%% @doc %% Saves the list of dependencies for later use. %% @spec (BuildRef, Deps) -> ok %% @end -- 1.5.6.3 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "erlware-dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/erlware-dev?hl=en -~----------~----~----~----~------~----~------~--~---
