From: Mikael Magnusson <[email protected]>

Without requiring it to be installed in the local repository.

Signed-off-by: Mikael Magnusson <[email protected]>
---
 server/sinan/src/sin_depends.erl |   45 +++++++++++++++++++++++++++++++------
 1 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/server/sinan/src/sin_depends.erl b/server/sinan/src/sin_depends.erl
index 8bdd0c8..e3a43b4 100644
--- a/server/sinan/src/sin_depends.erl
+++ b/server/sinan/src/sin_depends.erl
@@ -124,24 +124,55 @@ get_application_env(Key) ->
 %%--------------------------------------------------------------------
 check_project_dependencies(Prefix,
                           ErtsVersion,
-                          [{_, _, Deps, _} | ProjectApps], Acc) ->
+                          ProjectApps, Acc) ->
+    check_project_dependencies(Prefix, ErtsVersion, ProjectApps,
+                               ProjectApps, Acc).
+
+check_project_dependencies(Prefix,
+                           ErtsVersion,
+                           [{_Name, _Vsn, Deps, _} | ProjectApps],
+                           AllProjectApps, Acc) ->
     Acc2 = resolve_project_dependencies(Prefix, ErtsVersion, Deps,
+                                        AllProjectApps,
                                       Acc),
     check_project_dependencies(Prefix,
                               ErtsVersion,
                               ProjectApps,
+                              AllProjectApps,
                               Acc2);
 check_project_dependencies(_,
                           _,
                           [],
+                           _,
                           Acc) ->
     Acc.
 
 resolve_project_dependencies(Prefix,
                              ErtsVersion,
-                             [Dep | Deps], Acc) ->
+                             Deps0 = [Dep | Deps],
+                             AllProjectApps, Acc) ->
      case already_resolved(Dep, Acc) of
         false ->
+            resolve_project_dependencies2(Prefix, ErtsVersion, Deps0,
+                                          AllProjectApps,
+                                          Acc);
+        true ->
+            resolve_project_dependencies(Prefix, ErtsVersion, Deps,
+                                         AllProjectApps,
+                                         Acc)
+    end;
+resolve_project_dependencies(_, _, [], _, Acc) ->
+    Acc.
+
+resolve_project_dependencies2(Prefix,
+                             ErtsVersion,
+                             [Dep | Deps], AllProjectApps, Acc) ->
+    case lists:keysearch(Dep, 1, AllProjectApps) of
+       {value, App={Dep, _Version, NDeps, _Location}} ->
+           resolve_project_dependencies(Prefix, ErtsVersion, Deps ++ NDeps,
+                                        AllProjectApps,
+                                        [App | Acc]);
+       false ->
             Version =
                 case sin_resolver:package_versions(Prefix,
                                                    ErtsVersion,
@@ -152,7 +183,7 @@ resolve_project_dependencies(Prefix,
                                       [Dep]);
                     [Version1 | _] ->
                         Version1
-                end,            
+                end,
             NDeps = sin_resolver:package_dependencies(Prefix,
                                                       ErtsVersion,
                                                       Dep,
@@ -162,13 +193,11 @@ resolve_project_dependencies(Prefix,
                                                           Dep,
                                                           Version),
             resolve_project_dependencies(Prefix, ErtsVersion, Deps ++ NDeps,
+                                         AllProjectApps,
                                          [{Dep, Version, NDeps, Location} |
-                                          Acc]);
-        true ->
-            resolve_project_dependencies(Prefix, ErtsVersion, Deps,
-                                        Acc)
+                                          Acc])
     end;
-resolve_project_dependencies(_, _, [], Acc) ->
+resolve_project_dependencies2(_, _, [], _, Acc) ->
     Acc.
 
 
-- 
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