diff options
author | Tristan Sloughter <t@crashfast.com> | 2014-12-05 17:27:26 -0600 |
---|---|---|
committer | Tristan Sloughter <t@crashfast.com> | 2014-12-05 17:27:37 -0600 |
commit | 91860340bb66d240f207eef1306778dde6fe3edc (patch) | |
tree | 51fb8cfca20714bddcd7567eb17296bcbf6c2f48 | |
parent | 7cb22e469817f4d54220192997c189a89525f373 (diff) |
print error message for failed fetch
-rw-r--r-- | src/rebar3.erl | 10 | ||||
-rw-r--r-- | src/rebar_fetch.erl | 9 | ||||
-rw-r--r-- | src/rebar_utils.erl | 22 |
3 files changed, 12 insertions, 29 deletions
diff --git a/src/rebar3.erl b/src/rebar3.erl index 24d9ad3..9d419d1 100644 --- a/src/rebar3.erl +++ b/src/rebar3.erl @@ -47,9 +47,9 @@ main(Args) -> {ok, _State} -> ok; rebar_abort -> - rebar_utils:delayed_halt(1); + erlang:halt(1); {error, rebar_abort} -> - rebar_utils:delayed_halt(1); + erlang:halt(1); {error, {Module, Reason}} -> case code:which(Module) of non_existing -> @@ -58,16 +58,16 @@ main(Args) -> _ -> ?ERROR(Module:format_error(Reason), []) end, - rebar_utils:delayed_halt(1); + erlang:halt(1); {error, Error} when is_list(Error) -> ?ERROR(Error, []), - rebar_utils:delayed_halt(1); + erlang:halt(1); Error -> %% Nothing should percolate up from rebar_core; %% Dump this error to console ?ERROR("Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace", []), ?DEBUG("Uncaught error: ~p", [Error]), - rebar_utils:delayed_halt(1) + erlang:halt(1) end. %% Erlang-API entry point diff --git a/src/rebar_fetch.erl b/src/rebar_fetch.erl index a1b3476..eac2d02 100644 --- a/src/rebar_fetch.erl +++ b/src/rebar_fetch.erl @@ -11,6 +11,8 @@ download_source/2, needs_update/2]). +-export([format_error/1]). + -include("rebar.hrl"). %% map short versions of resources to module names @@ -47,8 +49,8 @@ download_source(AppDir, Source) -> true end catch - _:E -> - {error, E} + _:_ -> + {error, {rebar_fetch, {fetch_fail, Source}}} end. -spec needs_update(file:filename_all(), rebar_resource:resource()) -> boolean() | {error, string()}. @@ -61,6 +63,9 @@ needs_update(AppDir, Source) -> true end. +format_error({fetch_fail, Source}) -> + io_lib:format("Failed to fetch and copy dep: ~p", [Source]). + get_resource_type({Type, Location}) -> find_resource_module(Type, Location); get_resource_type({Type, Location, _}) -> diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl index 21629a4..d899dc5 100644 --- a/src/rebar_utils.erl +++ b/src/rebar_utils.erl @@ -45,7 +45,6 @@ vcs_vsn/3, deprecated/3, deprecated/4, - delayed_halt/1, erl_opts/1, indent/1, cleanup_code_path/1]). @@ -205,27 +204,6 @@ deprecated(Old, New, When) -> "'~p' will be removed ~s.~n">>, [Old, Old, New, Old, When]). --spec delayed_halt(integer()) -> no_return(). -delayed_halt(Code) -> - %% Work around buffer flushing issue in erlang:halt if OTP older - %% than R15B01. - %% TODO: remove workaround once we require R15B01 or newer - %% R15B01 introduced erlang:halt/2 - case erlang:is_builtin(erlang, halt, 2) of - true -> - halt(Code); - false -> - case os:type() of - {win32, nt} -> - timer:sleep(100), - halt(Code); - _ -> - halt(Code), - %% workaround to delay exit until all output is written - receive after infinity -> ok end - end - end. - %% @doc Return list of erl_opts -spec erl_opts(rebar_state:t()) -> list(). erl_opts(Config) -> |