diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_config.erl | 2 | ||||
-rw-r--r-- | src/rebar_erlc_compiler.erl | 14 | ||||
-rw-r--r-- | src/rebar_hooks.erl | 2 | ||||
-rw-r--r-- | src/rebar_utils.erl | 3 |
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}) -> |