|
|
@@ -23,6 +23,29 @@ usage() ->
|
|
|
"Usage: " ++ escript:script_name() ++ " emqx|emqx-edge".
|
|
|
|
|
|
-type app() :: atom().
|
|
|
+-type deps_overlay() :: {re, string()} | app().
|
|
|
+
|
|
|
+%% deps/0 returns the dependency overlays.
|
|
|
+%% {re, Pattern} to match application names using regexp pattern
|
|
|
+-spec deps(string()) -> [{app(), [deps_overlay()]}].
|
|
|
+deps("emqx-edge" ++ _) ->
|
|
|
+ %% special case for edge
|
|
|
+ base_deps() ++ [{{re, ".+"}, [{exclude, App} || App <- edge_excludes()]}];
|
|
|
+deps(_Profile) ->
|
|
|
+ base_deps().
|
|
|
+
|
|
|
+edge_excludes() ->
|
|
|
+ [ emqx_lwm2m
|
|
|
+ , emqx_auth_ldap
|
|
|
+ , emqx_auth_pgsql
|
|
|
+ , emqx_auth_redis
|
|
|
+ , emqx_auth_mongo
|
|
|
+ , emqx_lua_hook
|
|
|
+ , emqx_exhook
|
|
|
+ , emqx_exproto
|
|
|
+ , emqx_prometheus
|
|
|
+ , emqx_psk_file
|
|
|
+ ].
|
|
|
|
|
|
base_deps() ->
|
|
|
%% make sure emqx_dashboard depends on all other emqx_xxx apps
|
|
|
@@ -64,7 +87,7 @@ expand_deps([Dep | Deps], AppNames, Acc) ->
|
|
|
inject(Profile) ->
|
|
|
LibDir = lib_dir(Profile),
|
|
|
AppNames = list_apps(LibDir),
|
|
|
- Deps0 = lists:flatmap(fun(Dep) -> expand_names(Dep, AppNames) end, base_deps()),
|
|
|
+ Deps0 = lists:flatmap(fun(Dep) -> expand_names(Dep, AppNames) end, deps(Profile)),
|
|
|
Deps1 = merge(Deps0, []),
|
|
|
Deps2 = lists:map(fun({Name, DepsX}) ->
|
|
|
NewDeps = expand_deps(DepsX, AppNames, []),
|