summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rebar_config.erl2
-rw-r--r--src/rebar_erlc_compiler.erl14
-rw-r--r--src/rebar_hooks.erl2
-rw-r--r--src/rebar_utils.erl3
4 files changed, 14 insertions, 7 deletions
diff --git a/src/rebar_config.erl b/src/rebar_config.erl
index 36d6b18..63b7af7 100644
--- a/src/rebar_config.erl
+++ b/src/rebar_config.erl
@@ -60,7 +60,7 @@ consult_file(File) ->
end
end.
-merge_locks(Config, []) ->
+merge_locks(Config, [[]]) ->
Config;
merge_locks(Config, [Locks]) ->
{deps, ConfigDeps} = lists:keyfind(deps, 1, Config),
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl
index afdd6bd..ce15ab0 100644
--- a/src/rebar_erlc_compiler.erl
+++ b/src/rebar_erlc_compiler.erl
@@ -265,14 +265,20 @@ opts_changed(Opts, Target) ->
case code:load_abs(ObjectFile) of
{module, Mod} ->
Compile = Mod:module_info(compile),
- %% dialyzer and eunit have trouble without the next two lines
- code:delete(Mod),
- code:purge(Mod),
+ _ = purge(Mod),
lists:sort(Opts) =/= lists:sort(proplists:get_value(options,
Compile));
- {error, _} -> true
+ {error, nofile} -> false
end.
+purge(Mod) ->
+ %% remove old code if necessary
+ _ = code:purge(Mod),
+ %% move current code to old
+ true = code:delete(Mod),
+ %% remove new old code
+ _ = code:purge(Mod).
+
check_erlcinfo(_Config, #erlcinfo{vsn=?ERLCINFO_VSN}) ->
ok;
check_erlcinfo(Config, #erlcinfo{vsn=Vsn}) ->
diff --git a/src/rebar_hooks.erl b/src/rebar_hooks.erl
index a1a363e..706d6b9 100644
--- a/src/rebar_hooks.erl
+++ b/src/rebar_hooks.erl
@@ -22,4 +22,4 @@ apply_hook(Dir, Env, {Arch, Command, Hook}) ->
end;
apply_hook(Dir, Env, {Command, Hook}) ->
Msg = lists:flatten(io_lib:format("Hook for ~p failed!~n", [Command])),
- rebar_utils:sh(Hook, [{cd, Dir}, {env, Env}, {abort_on_error, Msg}]).
+ rebar_utils:sh(Hook, [use_stdout, {cd, Dir}, {env, Env}, {abort_on_error, Msg}]).
diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl
index b3ae9ff..ab5167f 100644
--- a/src/rebar_utils.erl
+++ b/src/rebar_utils.erl
@@ -314,7 +314,8 @@ expand_sh_flag(debug_and_abort_on_error) ->
expand_sh_flag(use_stdout) ->
{output_handler,
fun(Line, Acc) ->
- ?CONSOLE("~s", [Line]),
+ %% Line already has a newline so don't use ?CONSOLE which adds one
+ io:format("~s", [Line]),
[Line | Acc]
end};
expand_sh_flag({use_stdout, false}) ->