summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2014-12-05 19:51:02 -0500
committerFred Hebert <mononcqc@ferd.ca>2014-12-05 19:51:02 -0500
commit018c5ceba35c3af4af9b38f614e4530a2ce99db4 (patch)
tree51fb8cfca20714bddcd7567eb17296bcbf6c2f48 /src
parent228e96c9eb296d236ec23dfc1ee0e6b5236c4a30 (diff)
parent91860340bb66d240f207eef1306778dde6fe3edc (diff)
Merge pull request #42 from tsloughter/master
Update error message and fix order of dir creation for deps
Diffstat (limited to 'src')
-rw-r--r--src/rebar3.erl10
-rw-r--r--src/rebar_fetch.erl12
-rw-r--r--src/rebar_utils.erl22
3 files changed, 14 insertions, 30 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 2df892c..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
@@ -28,14 +30,15 @@ download_source(AppDir, Source) ->
Module = get_resource_type(Source),
TmpDir = ec_file:insecure_mkdtemp(),
AppDir1 = ec_cnv:to_list(AppDir),
- ec_file:mkdir_p(AppDir1),
case Module:download(TmpDir, Source) of
{ok, _} ->
+ ec_file:mkdir_p(AppDir1),
code:del_path(filename:absname(filename:join(AppDir1, "ebin"))),
ec_file:remove(filename:absname(AppDir1), [recursive]),
ok = ec_file:copy(TmpDir, filename:absname(AppDir1), [recursive]),
true;
{tarball, File} ->
+ ec_file:mkdir_p(AppDir1),
ok = erl_tar:extract(File, [{cwd, TmpDir}
,compressed]),
BaseName = filename:basename(AppDir1),
@@ -46,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()}.
@@ -60,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) ->