Browse Source

clean codepath

Maxim Sokhatsky 10 years ago
parent
commit
ff26e7c7e5
5 changed files with 23 additions and 23 deletions
  1. BIN
      mad
  2. 5 5
      src/mad.erl
  3. 1 1
      src/mad_bundle.erl
  4. 10 14
      src/mad_plan.erl
  5. 7 3
      src/mad_repl.erl

BIN
mad


+ 5 - 5
src/mad.erl

@@ -16,13 +16,13 @@ main(Params) ->
     Conf1 = mad_script:script(ConfigFileAbs, Conf, ""),
     Conf1 = mad_script:script(ConfigFileAbs, Conf, ""),
 
 
     %% rebar should create deps dir in deps_dir only, this is not a list
     %% rebar should create deps dir in deps_dir only, this is not a list
-    DepsDir = filename:join([mad_utils:get_value(deps_dir, Conf1, ["deps"]),"*","ebin"]),
-    Paths = ["ebin"|filelib:wildcard(DepsDir)],
-    code:add_paths(Paths),
+%    DepsDir = filename:join([mad_utils:get_value(deps_dir, Conf1, ["deps"]),"*","ebin"]),
+%    Paths = ["ebin"|filelib:wildcard(DepsDir)],
+%    code:add_paths(Paths),
 
 
     %% add lib_dirs to path
     %% add lib_dirs to path
-    LibDirs = mad_utils:lib_dirs(Cwd, Conf),
-    code:add_paths(LibDirs),
+%    LibDirs = mad_utils:lib_dirs(Cwd, Conf),
+%    code:add_paths(LibDirs),
 
 
     Fun = fun({Name,Params}) -> ?MODULE:Name(Cwd, ConfigFile, Conf1, Params) end,
     Fun = fun({Name,Params}) -> ?MODULE:Name(Cwd, ConfigFile, Conf1, Params) end,
     lists:foreach(Fun, FP).
     lists:foreach(Fun, FP).

+ 1 - 1
src/mad_bundle.erl

@@ -2,7 +2,7 @@
 -compile(export_all).
 -compile(export_all).
 
 
 main(App) ->
 main(App) ->
-    EmuArgs = "-noshell -noinput",
+    EmuArgs = "-noshell -noinput -boot start_sasl",
     Files = files(),
     Files = files(),
     escript:create(App, [shebang, {comment, ""}, {emu_args, EmuArgs}, {archive, Files, []}]),
     escript:create(App, [shebang, {comment, ""}, {emu_args, EmuArgs}, {archive, Files, []}]),
     ok = file:change_mode(App, 8#764).
     ok = file:change_mode(App, 8#764).

+ 10 - 14
src/mad_plan.erl

@@ -1,29 +1,25 @@
 -module(mad_plan).
 -module(mad_plan).
 -compile(export_all).
 -compile(export_all).
 
 
+disabled() -> [wx,webtool,ssl,runtime_tools,public_key,observer,inets,asn1,et,eunit,hipe].
+
 applist() -> 
 applist() -> 
     case file:read_file(".applist") of
     case file:read_file(".applist") of
-         {ok,Binary} -> parse_applist(binary_to_list(Binary)++"."); 
+         {ok,Binary} -> parse_applist(binary_to_list(Binary)); 
          {error,Reason} -> main([ list_to_atom(filename:basename(App))
          {error,Reason} -> main([ list_to_atom(filename:basename(App))
-                             || App <- filelib:wildcard("{apps,deps}/*")  ] -- ['rebar.config']) end.
+                || App <- filelib:wildcard("{apps,deps}/*/")] -- disabled()) end.
 
 
-parse_applist(AppList) ->
-    {ok,Tokens,_EndLine} = erl_scan:string(AppList),
-    {ok,AbsForm} = erl_parse:parse_exprs(Tokens),
-    {value,Value,_Bs} = erl_eval:exprs(AbsForm, erl_eval:new_bindings()),
-    Value.
+parse_applist(AppList) -> 
+   Res = string:tokens(string:strip(string:strip(AppList,right,$]),left,$[),","),
+   [ list_to_atom(R) || R <-Res ]  -- disabled().
 
 
-relconfig(Apps) ->
-    LibDirs = [Dir || Dir <- ["apps", "deps"], case file:read_file_info(Dir) of {ok, _} -> true; _ -> false end],
-    {sys, [{lib_dirs,LibDirs}, {rel,"node","1",Apps}, {profile, embedded},
-           {boot_rel,"node"}%, {app,observer,[{incl_cond,exclude}]}
-             ]}.
+relconfig(Apps) -> {sys, [{lib_dirs,["apps","deps"]}, {rel,"node","1",Apps}, {boot_rel,"node"} ]}.
 
 
 main(AppList) ->
 main(AppList) ->
     Relconfig = relconfig(AppList),
     Relconfig = relconfig(AppList),
-    io:format("Relconfig: ~p",[Relconfig]),
     {ok, Server} = reltool:start_server([{config, Relconfig}]),
     {ok, Server} = reltool:start_server([{config, Relconfig}]),
     {ok, {release, _Node, _Erts, Apps}} = reltool_server:get_rel(Server, "node"),
     {ok, {release, _Node, _Erts, Apps}} = reltool_server:get_rel(Server, "node"),
-    Ordered = [element(1, A) || A <- Apps],
+    Ordered = [element(1, A) || A <- Apps] -- disabled(),
+    io:format("Ordered: ~p~n",[Ordered]),
     io:format("Applist Generation: ~w~n", [file:write_file(".applist",io_lib:format("~w",[Ordered]))]),
     io:format("Applist Generation: ~w~n", [file:write_file(".applist",io_lib:format("~w",[Ordered]))]),
     Ordered.
     Ordered.

+ 7 - 3
src/mad_repl.erl

@@ -7,9 +7,9 @@ load_config() ->
       [] -> skip;
       [] -> skip;
       File ->
       File ->
             {ok,[Apps]} = file:consult(File),
             {ok,[Apps]} = file:consult(File),
-            [ begin io:format("~p:~n",[App]),
+            [ begin %io:format("~p:~n",[App]),
               [ begin
               [ begin
-              io:format("\t{~p,~p}~n",[K,V]),
+%              io:format("\t{~p,~p}~n",[K,V]),
               application:set_env(App,K,V) end || {K,V} <- Cfg ] end || {App,Cfg} <- Apps]
               application:set_env(App,K,V) end || {K,V} <- Cfg ] end || {App,Cfg} <- Apps]
              end.
              end.
 
 
@@ -17,6 +17,10 @@ load_apps([]) -> [ application:start(A) ||A<-mad_plan:applist()];
 load_apps(Params) -> [application:ensure_all_started(list_to_atom(A))||A<-Params].
 load_apps(Params) -> [application:ensure_all_started(list_to_atom(A))||A<-Params].
 
 
 main(Params) -> 
 main(Params) -> 
-%    io:format("~p",[code:get_path()]),
+    Path = filelib:wildcard("{apps,deps}/*/ebin") ++ 
+           filelib:wildcard(code:root_dir() ++ 
+              "/lib/{compiler,syntax_tools,tools,mnesia,reltool,xmerl,crypto,kernel,stdlib}-*/ebin"),
+    code:set_path(Path),
+    io:format("CodePath: ~p~n",[code:get_path()]),
     load_config(), load_apps(Params), user_drv:start(), 
     load_config(), load_apps(Params), user_drv:start(), 
      timer:sleep(infinity).
      timer:sleep(infinity).