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
-~----------~----~----~----~------~----~------~--~---

Reply via email to