From cf1c49db91279f1c1243f62b024cf4070047c060 Mon Sep 17 00:00:00 2001 From: Stavros Aronis Date: Thu, 22 Apr 2021 15:44:35 +0200 Subject: [PATCH 1/2] Also show error on {abort_on_error, Msg} --- src/rebar_utils.erl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl index 922034581..b8a44102a 100644 --- a/src/rebar_utils.erl +++ b/src/rebar_utils.erl @@ -654,10 +654,18 @@ expand_sh_flag({env, _EnvArg} = Env) -> -type err_handler() :: fun((string(), {integer(), string()}) -> no_return()). -spec log_msg_and_abort(string()) -> err_handler(). log_msg_and_abort(Message) -> - fun(_Command, {_Rc, _Output}) -> - ?ABORT(Message, []) + fun(Command, Arg) -> + Msg = io_lib:format("~s~n", [Message]), + log_msg_and_abort(Msg, Command, Arg) end. +-spec log_msg_and_abort(string(), string(), {integer(), string()}) -> no_return(). +log_msg_and_abort(Message, Command, {Rc, Output}) -> + ?ABORT("~s" + "sh(~ts)~n" + "failed with return code ~w and the following output:~n" + "~ts", [Message, Command, Rc, Output]). + -spec debug_log_msg_and_abort(string()) -> err_handler(). debug_log_msg_and_abort(Message) -> fun(Command, {Rc, Output}) -> @@ -668,10 +676,8 @@ debug_log_msg_and_abort(Message) -> end. -spec log_and_abort(string(), {integer(), string()}) -> no_return(). -log_and_abort(Command, {Rc, Output}) -> - ?ABORT("sh(~ts)~n" - "failed with return code ~w and the following output:~n" - "~ts", [Command, Rc, Output]). +log_and_abort(Command, Arg) -> + log_msg_and_abort("", Command, Arg). -spec debug_and_abort(string(), {integer(), string()}) -> no_return(). debug_and_abort(Command, {Rc, Output}) -> From 3944acc4aefd56cf41b94fe60f70f8f6aa166ea4 Mon Sep 17 00:00:00 2001 From: Stavros Aronis Date: Thu, 22 Apr 2021 15:45:08 +0200 Subject: [PATCH 2/2] Fail loudly when app src vsn cmd fails --- src/rebar_utils.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl index b8a44102a..cfcb7abe2 100644 --- a/src/rebar_utils.erl +++ b/src/rebar_utils.erl @@ -798,7 +798,8 @@ vcs_vsn_cmd(_, _, _) -> unknown. cmd_vsn_invoke(Cmd, Dir) -> - {ok, VsnString} = rebar_utils:sh(Cmd, [{cd, Dir}, {use_stdout, false}]), + ErrorOpt = {abort_on_error, "vsn cmd in .app.src failed"}, + {ok, VsnString} = rebar_utils:sh(Cmd, [ErrorOpt, {cd, Dir}, {use_stdout, false}]), rebar_string:trim(VsnString, trailing, "\n"). %% @doc ident to the level specified