Browse Source

proper SCRIPT handling

Maxim Sokhatsky 10 years ago
parent
commit
956733ac91
6 changed files with 8 additions and 8 deletions
  1. BIN
      mad
  2. 1 1
      otp.mk
  3. 1 1
      src/mad.erl
  4. 2 2
      src/mad_compile.erl
  5. 1 1
      src/mad_deps.erl
  6. 3 3
      src/mad_utils.erl

BIN
mad


+ 1 - 1
otp.mk

@@ -1,6 +1,6 @@
 compile: get-deps
 get-deps compile clean:
-	rebar $@
+	./mad $@
 escript: compile
 	./build
 ct: get-deps compile

+ 1 - 1
src/mad.erl

@@ -10,7 +10,7 @@ main(Params) ->
     ConfigFile = "rebar.config",
     ConfigFileAbs = filename:join(Cwd, ConfigFile),
     Conf = mad_utils:consult(ConfigFileAbs),
-    Conf1 = mad_utils:script(ConfigFileAbs, Conf),
+    Conf1 = mad_utils:script(ConfigFileAbs, Conf, ""),
 
     %% 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"]),

+ 2 - 2
src/mad_compile.erl

@@ -20,7 +20,7 @@ dep(Cwd, _Conf, ConfigFile, Name) ->
     DepPath = filename:join([Cwd, DepsDir, Name]),
     DepConfigFile = filename:join(DepPath, ConfigFile),
     Conf = mad_utils:consult(DepConfigFile),
-    Conf1 = mad_utils:script(DepConfigFile, Conf),
+    Conf1 = mad_utils:script(DepConfigFile, Conf, Name),
     deps(Cwd, Conf, ConfigFile, mad_utils:get_value(deps, Conf1, [])),
 
     %% add lib_dirs to path
@@ -66,7 +66,7 @@ compile_port(Dir,Specs,Config) ->
     filelib:ensure_dir(Dir ++ "/priv/"),
     Env = [ {Var,Val} || {System,Var,Val} <- mad_utils:get_value(port_env, Config, []) ],
     [ begin 
-           Template = string:join(filelib:wildcard(Dir ++"/" ++ Files)," ") 
+           Template = string:join(filelib:wildcard(Dir ++ "/" ++ Files)," ") 
               ++ " CFLAGS LDFLAGS -o " ++ Dir ++ "/" ++ Out,
        Args = string:strip(replace_env(Template,Env),both,32),
        {Atom,Status,Report} = sh:run("cc",string:tokens(Args," "),binary,Dir,Env),

+ 1 - 1
src/mad_deps.erl

@@ -41,7 +41,7 @@ fetch_dep(Cwd, Config, ConfigFile, Name, Cmd, Uri, Co, Cache) ->
     %% check dependencies of the dependency
     TrunkConfigFile = filename:join(TrunkPath, ConfigFile),
     Conf = mad_utils:consult(TrunkConfigFile),
-    Conf1 = mad_utils:script(TrunkConfigFile, Conf),
+    Conf1 = mad_utils:script(TrunkConfigFile, Conf, Name),
     fetch(Cwd, Config, ConfigFile, mad_utils:get_value(deps, Conf1, [])),
     case Cache of
        deps_fetch -> skip;

+ 3 - 3
src/mad_utils.erl

@@ -27,10 +27,10 @@ get_value(Key, Opts, Default) ->
             Value;
         _ -> Default end.
 
-script(ConfigFile, Conf) ->
+script(ConfigFile, Conf, Name) ->
     File = ConfigFile ++ ".script",
     Filename = filename:basename(File),
-    case file:script(File, [{'CONFIG', Conf}, {'SCRIPT', Filename}]) of
+    case file:script(File, [{'CONFIG', Conf}, {'SCRIPT', File}]) of
         {ok, {error,_}} -> Conf;
         {ok, Out} -> Out;
         {error, _} -> Conf
@@ -44,7 +44,7 @@ sub_dirs(Cwd, ConfigFile, [Dir|T], Acc) ->
     SubDir = filename:join(Cwd, Dir),
     ConfigFile1 = filename:join(SubDir, ConfigFile),
     Conf = consult(ConfigFile1),
-    Conf1 = script(ConfigFile1, Conf),
+    Conf1 = script(ConfigFile1, Conf, Dir),
     Acc1 = sub_dirs(SubDir, ConfigFile, get_value(sub_dirs, Conf1, []),
                     Acc ++ [SubDir]),
     sub_dirs(Cwd, ConfigFile, T, Acc1).