diff options
author | Viacheslav V. Kovalev <kovyl2404@gmail.com> | 2015-06-04 23:08:27 +0300 |
---|---|---|
committer | Daniel Widgren <daniel.widgren@gmail.com> | 2015-06-26 09:20:37 +0200 |
commit | 473393a172b68b9263a43b8d6a77a135caf7deff (patch) | |
tree | 98e4373d01f05573b50f67c344cfe540844b77b7 /src/rebar_utils.erl | |
parent | 701f66aab2ff3b4118f9f93dd336876b1096c414 (diff) |
Fix rebar_utils:sh on windows
Diffstat (limited to 'src/rebar_utils.erl')
-rw-r--r-- | src/rebar_utils.erl | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl index cc59ed0..0cbc7c2 100644 --- a/src/rebar_utils.erl +++ b/src/rebar_utils.erl @@ -154,7 +154,7 @@ sh(Command0, Options0) -> Command = lists:flatten(patch_on_windows(Command0, proplists:get_value(env, Options, []))), PortSettings = proplists:get_all_values(port_settings, Options) ++ - [exit_status, {line, 16384}, use_stdio, stderr_to_stdout, hide], + [exit_status, {line, 16384}, use_stdio, stderr_to_stdout, hide, eof], ?DEBUG("Port Cmd: ~s\nPort Opts: ~p\n", [Command, PortSettings]), Port = open_port({spawn, Command}, PortSettings), @@ -435,10 +435,14 @@ sh_loop(Port, Fun, Acc) -> sh_loop(Port, Fun, Fun(Line ++ "\n", Acc)); {Port, {data, {noeol, Line}}} -> sh_loop(Port, Fun, Fun(Line, Acc)); - {Port, {exit_status, 0}} -> - {ok, lists:flatten(lists:reverse(Acc))}; - {Port, {exit_status, Rc}} -> - {error, {Rc, lists:flatten(lists:reverse(Acc))}} + {Port, eof} -> + Data = lists:flatten(lists:reverse(Acc)), + receive + {Port, {exit_status, 0}} -> + {ok, Data}; + {Port, {exit_status, Rc}} -> + {error, {Rc, Data}} + end end. beam_to_mod(Dir, Filename) -> |