Browse Source

Remove rebar_conf/1, add sub_dirs/3, update script/2

Sina Samavati 11 years ago
parent
commit
970af88c5b
2 changed files with 27 additions and 37 deletions
  1. 18 21
      src/mad_utils.erl
  2. 9 16
      test/mad_utils_SUITE.erl

+ 18 - 21
src/mad_utils.erl

@@ -4,14 +4,13 @@
 -export([exec/2]).
 -export([home/0]).
 -export([consult/1]).
--export([rebar_conf/1]).
 -export([src/1]).
 -export([include/1]).
 -export([ebin/1]).
 -export([deps/1]).
 -export([get_value/3]).
 -export([script/2]).
--export([sub_dirs/2]).
+-export([sub_dirs/3]).
 -export([lib_dirs/2]).
 -export([https_to_git/1]).
 -export([git_to_https/1]).
@@ -48,11 +47,6 @@ consult(File) ->
             []
     end.
 
--spec rebar_conf(directory()) -> [term()].
-rebar_conf(Dir) ->
-    Dir1 = filename:absname(Dir),
-    consult(filename:join(Dir1, "rebar.config")).
-
 -spec src(directory()) -> directory().
 src(Dir) ->
     %% Dir/src
@@ -80,29 +74,32 @@ get_value(Key, Opts, Default) ->
         _ -> Default
     end.
 
--spec script(directory(), [term()]) -> [term()].
-script(Dir, Conf) ->
-    File = filename:join(Dir, "rebar.config.script"),
-    case file:script(File, [{'CONFIG', Conf}]) of
+-spec script(file:name(), [term()]) -> [term()].
+script(ConfigFile, Conf) ->
+    File = ConfigFile ++ ".script",
+    Filename = filename:basename(File),
+    case file:script(File, [{'CONFIG', Conf}, {'SCRIPT', Filename}]) of
         {ok, Out} ->
             Out;
         {error, _} ->
             Conf
     end.
 
--spec sub_dirs(directory(), [term()]) -> [directory()].
-sub_dirs(Cwd, Conf) ->
-    sub_dirs(Cwd, get_value(sub_dirs, Conf, []), []).
+-spec sub_dirs(directory(), file:filename(), [term()]) -> [directory()].
+sub_dirs(Cwd, ConfigFile, Conf) ->
+    sub_dirs(Cwd, ConfigFile, get_value(sub_dirs, Conf, []), []).
 
--spec sub_dirs(directory(), [term()], [term()]) -> [directory()].
-sub_dirs(_, [], Acc) ->
+-spec sub_dirs(directory(), file:filename(), [term()], [term()]) -> [directory()].
+sub_dirs(_, _, [], Acc) ->
     Acc;
-sub_dirs(Cwd, [Dir|T], Acc) ->
+sub_dirs(Cwd, ConfigFile, [Dir|T], Acc) ->
     SubDir = filename:join(Cwd, Dir),
-    Conf = rebar_conf(SubDir),
-    Conf1 = script(SubDir, Conf),
-    Acc1 = sub_dirs(SubDir, get_value(sub_dirs, Conf1, []), Acc ++ [SubDir]),
-    sub_dirs(Cwd, T, Acc1).
+    ConfigFile1 = filename:join(SubDir, ConfigFile),
+    Conf = consult(ConfigFile1),
+    Conf1 = script(ConfigFile1, Conf),
+    Acc1 = sub_dirs(SubDir, ConfigFile, get_value(sub_dirs, Conf1, []),
+                    Acc ++ [SubDir]),
+    sub_dirs(Cwd, ConfigFile, T, Acc1).
 
 -spec lib_dirs(directory(), [term()]) -> [directory()].
 lib_dirs(Cwd, Conf) ->

+ 9 - 16
test/mad_utils_SUITE.erl

@@ -5,7 +5,6 @@
 -export([exec/1]).
 -export([home/1]).
 -export([consult/1]).
--export([rebar_conf/1]).
 -export([src/1]).
 -export([include/1]).
 -export([ebin/1]).
@@ -23,8 +22,8 @@
 
 all() ->
     [
-     cwd, exec, home, consult, rebar_conf, src, include, ebin, deps, get_value,
-     script, lib_dirs, sub_dirs, https_to_git, git_to_https, last_modified
+     cwd, exec, home, consult, src, include, ebin, deps, get_value, script,
+     lib_dirs, sub_dirs, https_to_git, git_to_https, last_modified
     ].
 
 cwd(_) ->
@@ -47,14 +46,6 @@ consult(Config) ->
             ]},
      {erl_opts, [d, 'X']}] = mad_utils:consult(File ++ ".config").
 
-rebar_conf(Config) ->
-    [] = mad_utils:rebar_conf("."),
-    [{deps, [
-             {mad, ".*", {git, "git://github.com/s1n4/mad.git",
-                          {branch, "master"}}}
-            ]},
-     {erl_opts, [d, 'X']}] = mad_utils:rebar_conf(get_value(data_dir, Config)).
-
 src(_) ->
     "/path/to/app/src" = mad_utils:src("/path/to/app").
 
@@ -77,13 +68,14 @@ get_value(_) ->
     [0,1,2,"and so on"] = mad_utils:get_value(numbers, Opts, undefined).
 
 script(Config) ->
-    [a, b, c] = mad_utils:script(mad_utils:cwd(), [a, b, c]),
-    Dir = get_value(data_dir, Config),
+    [a, b, c] = mad_utils:script("rebar.config", [a, b, c]),
+    File = filename:join(get_value(data_dir, Config), "rebar.config"),
     [{sub_dirs, ["sub_dir1", "sub_dir2"]},
-     a, b, c] = mad_utils:script(Dir, [a, b, c]).
+     a, b, c] = mad_utils:script(File, [a, b, c]).
 
 sub_dirs(Config) ->
-    ["/sub_dir0"] = mad_utils:sub_dirs("/", [{sub_dirs, ["sub_dir0"]}]),
+    ["/sub_dir0"] = mad_utils:sub_dirs("/", "rebar.config",
+                                       [{sub_dirs, ["sub_dir0"]}]),
     DataDir = get_value(data_dir, Config),
     SD1 = filename:absname(filename:join(DataDir, "sub_dir1")),
     SD2 = filename:join(SD1, "trap"),
@@ -91,7 +83,8 @@ sub_dirs(Config) ->
     SD4 = filename:join(SD3, "time-machine"),
     [
      SD1, SD2, SD3, SD4
-    ] =  mad_utils:sub_dirs(DataDir, [{sub_dirs, ["sub_dir1", "sub_dir2"]}]).
+    ] =  mad_utils:sub_dirs(DataDir, "rebar.config",
+                            [{sub_dirs, ["sub_dir1", "sub_dir2"]}]).
 
 lib_dirs(Config) ->
     [] = mad_utils:lib_dirs("/", [{lib_dirs, ["lib_dir0"]}]),