From d18ba410234bab034d7e3849d254574b174154fa Mon Sep 17 00:00:00 2001 From: Namdak Tonpa Date: Sat, 8 Oct 2016 18:13:47 +0300 Subject: [PATCH] fix application controller start --- include/mad.hrl | 2 +- mad | Bin 103080 -> 103843 bytes src/provision/mad_repl.erl | 44 +++++++++++++++++++++++++------------ 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/include/mad.hrl b/include/mad.hrl index e0e25b2..b6be0f3 100644 --- a/include/mad.hrl +++ b/include/mad.hrl @@ -1 +1 @@ --define(VERSION,"cbe5cc"). +-define(VERSION,"059f59"). diff --git a/mad b/mad index bd6b1d74fd5555fd2cd757be0ccbfd1b453ee2d2..f0c424825a82ac47048c386a185c202207924de1 100755 GIT binary patch delta 22451 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 delta 21653 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 B=7j(N diff --git a/src/provision/mad_repl.erl b/src/provision/mad_repl.erl index 638f31d..7ce37e4 100644 --- a/src/provision/mad_repl.erl +++ b/src/provision/mad_repl.erl @@ -46,22 +46,38 @@ load_includes(AppConfigs) -> {ok,[A]} -> A end, load_config(Apps, []) end || File <- AppConfigs, is_list(File) ]. -acc_start(A,Acc,Config) -> +acc_start(A,Acc) -> application:ensure_all_started(A), Acc. -load_apps([],Config,_Acc) -> - lists:foldl(fun(A,Acc) -> case lists:member(A,system()) of - true -> load_config(Config,[]), - acc_start(A,Acc,Config); - _ -> X = load_config(A), - {application,Name,Map} = X, - [ application:set_env(Name,K,V) || {K,V} <- proplists:get_value(env,Map,[]) ], - load_config(Config,[]), - case X of - [] -> acc_start(A,Acc,X); - _E -> acc_start(_E,Acc,X) end end end,[], applist()); -load_apps(["applist"],Config,Acc) -> load_apps([],Config,Acc); -load_apps(Params,_,_Acc) -> [ application:ensure_all_started(list_to_atom(A))||A<-Params]. +% for system application we just start, forgot about env merging + +load(true,A,Acc,Config) -> + load_config(Config,[]), + acc_start(A,Acc); + +% for user application we should merge app from ebin and from sys.config +% and start application using tuple argument in app controller + +load(_,A,Acc,Config) -> + X = load_config(A), + {application,Name,Map} = X, + Env = [ begin application:set_env(Name,K,V),{K,V} end + || {K,V} <- proplists:get_value(env,Map,[]) ], + load_config(Config,[]), + NewEnv = lists:foldl(fun({Name,E},Acc2) -> + lists:foldl(fun({K,V},Acc1) -> set_value(K,1,Acc1,{K,V}) end,Acc2,E); + (_,Acc2) -> Acc end, Env, Config), + NewMap = set_value(env,1,Map,{env,NewEnv}), + NewApp = {application,Name,NewMap}, + acc_start(NewApp,Acc). + +load_apps([],Config,Acc) -> [ load(lists:member(A,system()),A,Acc,Config) || A <- applist()]; +load_apps(["applist"],Config,Acc) -> load_apps([],Config,Acc); +load_apps(Params,_,_Acc) -> [ application:ensure_all_started(list_to_atom(A))||A<-Params]. + +set_value(Name,Pos,List,New) -> add_replace(lists:keyfind(Name,Pos,List),Name,Pos,List,New). +add_replace(false,Name,Pos,List,New) -> [New|List]; +add_replace(_____,Name,Pos,List,New) -> lists:keyreplace(Name,Pos,List,New). cwd() -> case file:get_cwd() of {ok, Cwd} -> Cwd; _ -> "." end.