mirror of
https://github.com/correl/rebar.git
synced 2024-11-23 19:19:54 +00:00
Change default log level to 'warn' and introduce -q/--quiet
This commit is contained in:
parent
e5d76e7e8c
commit
6de94e8a16
6 changed files with 125 additions and 18 deletions
|
@ -50,7 +50,7 @@
|
|||
tools]},
|
||||
{env, [
|
||||
%% Default log level
|
||||
{log_level, error},
|
||||
{log_level, warn},
|
||||
|
||||
%% any_dir processing modules
|
||||
{any_dir_modules, [
|
||||
|
|
99
inttest/logging/logging_rt.erl
Normal file
99
inttest/logging/logging_rt.erl
Normal file
|
@ -0,0 +1,99 @@
|
|||
-module(logging_rt).
|
||||
-export([files/0,
|
||||
run/1]).
|
||||
|
||||
-define(APP_FILE, "ebin/logging.app").
|
||||
|
||||
files() ->
|
||||
[
|
||||
{copy, "../../rebar", "rebar"},
|
||||
{create, ?APP_FILE, app(invalid_name, [])}
|
||||
].
|
||||
|
||||
run(_Dir) ->
|
||||
SharedExpected = "==> logging_rt \\(compile\\)",
|
||||
%% provoke ERROR due to an invalid app file
|
||||
retest:log(info, "Check 'compile' failure output~n"),
|
||||
ok = check_output("./rebar compile -q", should_fail,
|
||||
[SharedExpected, "ERROR: "],
|
||||
["WARN: ", "INFO: ", "DEBUG: "]),
|
||||
%% fix bad app file
|
||||
ok = file:write_file(?APP_FILE, app(logging, [])),
|
||||
retest:log(info, "Check 'compile' success output~n"),
|
||||
ok = check_output("./rebar compile", should_succeed,
|
||||
[SharedExpected],
|
||||
["ERROR: ", "WARN: ", "INFO: ", "DEBUG: "]),
|
||||
retest:log(info, "Check 'compile -v' success output~n"),
|
||||
ok = check_output("./rebar compile -v", should_succeed,
|
||||
[SharedExpected],
|
||||
["ERROR: ", "INFO: ", "DEBUG: "]),
|
||||
retest:log(info, "Check 'compile -vv' success output~n"),
|
||||
ok = check_output("./rebar compile -vv", should_succeed,
|
||||
[SharedExpected, "DEBUG: "],
|
||||
["ERROR: ", "INFO: "]),
|
||||
ok.
|
||||
|
||||
check_output(Cmd, FailureMode, Expected, Unexpected) ->
|
||||
case {retest:sh(Cmd), FailureMode} of
|
||||
{{error, _}=Error, should_succeed} ->
|
||||
retest:log(error, "cmd '~s' failed:~n~p~n", [Cmd, Error]),
|
||||
Error;
|
||||
{{ok, Captured}, should_succeed} ->
|
||||
Joined = string:join(Captured, "\n"),
|
||||
check_output1(Cmd, Joined, Expected, Unexpected);
|
||||
{{error, {stopped, {_Rc, Captured}}}, should_fail} ->
|
||||
Joined = string:join(Captured, "\n"),
|
||||
check_output1(Cmd, Joined, Expected, Unexpected)
|
||||
end.
|
||||
|
||||
check_output1(Cmd, Captured, Expected, Unexpected) ->
|
||||
ReOpts = [{capture, all, list}],
|
||||
ExMatches =
|
||||
lists:zf(
|
||||
fun(Pattern) ->
|
||||
case re:run(Captured, Pattern, ReOpts) of
|
||||
nomatch ->
|
||||
retest:log(error,
|
||||
"Expected pattern '~s' missing "
|
||||
"in the following output:~n"
|
||||
"=== BEGIN ===~n~s~n=== END ===~n",
|
||||
[Pattern, Captured]),
|
||||
{true, Pattern};
|
||||
{match, _} ->
|
||||
false
|
||||
end
|
||||
end, Expected),
|
||||
|
||||
UnExMatches =
|
||||
lists:zf(
|
||||
fun(Pattern) ->
|
||||
case re:run(Captured, Pattern, ReOpts) of
|
||||
nomatch ->
|
||||
false;
|
||||
{match, [Match]} ->
|
||||
retest:log(
|
||||
console,
|
||||
"Unexpected output when running cmd '~s':~n~s~n",
|
||||
[Cmd, Match]),
|
||||
{true, Match}
|
||||
end
|
||||
end, Unexpected),
|
||||
|
||||
case {ExMatches, UnExMatches} of
|
||||
{[], []} ->
|
||||
ok;
|
||||
_ ->
|
||||
error
|
||||
end.
|
||||
|
||||
%%
|
||||
%% Generate the contents of a simple .app file
|
||||
%%
|
||||
app(Name, Modules) ->
|
||||
App = {application, Name,
|
||||
[{description, atom_to_list(Name)},
|
||||
{vsn, "1"},
|
||||
{modules, Modules},
|
||||
{registered, []},
|
||||
{applications, [kernel, stdlib]}]},
|
||||
io_lib:format("~p.\n", [App]).
|
|
@ -11,7 +11,7 @@ files() ->
|
|||
|
||||
run(Dir) ->
|
||||
retest_log:log(debug, "Running in Dir: ~s~n", [Dir]),
|
||||
Ref = retest:sh("./rebar -C custom.config check-deps -vvv",
|
||||
Ref = retest:sh("./rebar -C custom.config check-deps -vv",
|
||||
[{async, true}]),
|
||||
{ok, Captured} =
|
||||
retest:sh_expect(Ref,
|
||||
|
|
|
@ -7,10 +7,10 @@ _rebar_global_opts=(
|
|||
'(--help -h)'{--help,-h}'[Show the program options]'
|
||||
'(--commands -c)'{--commands,-c}'[Show available commands]'
|
||||
'(--version -V)'{--version,-V}'[Show version information]'
|
||||
'(-vvv -vv -v)'--verbose+'[Verbosity level. Default: 0]:verbosity level:(0 1 2 3)'
|
||||
'(-vvv)-v[Slightly more verbose output]'
|
||||
'(-vvv)-vv[More verbose output]'
|
||||
'(-v -vv)-vvv[Most verbose output]'
|
||||
'(-vv -v)'--verbose'[Enforce verbosity level]'
|
||||
'(-vv)-v[Slightly more verbose output]'
|
||||
'(-v)-vv[More verbose output]'
|
||||
'(-vv -v --verbose)'{--quiet,-q}'[Quiet, only print error messages]'
|
||||
'(--force -f)'{--force,-f}'[Force]'
|
||||
'-D+[Define compiler macro]'
|
||||
'(--jobs -j)'{--jobs+,-j+}'[Number of concurrent workers a command may use. Default: 3]:workers:(1 2 3 4 5 6 7 8 9)'
|
||||
|
|
|
@ -258,13 +258,20 @@ save_options(Config, {Options, NonOptArgs}) ->
|
|||
%% set log level based on getopt option
|
||||
%%
|
||||
set_log_level(Config, Options) ->
|
||||
LogLevel = case proplists:get_all_values(verbose, Options) of
|
||||
[] ->
|
||||
rebar_log:default_level();
|
||||
Verbosities ->
|
||||
lists:last(Verbosities)
|
||||
end,
|
||||
rebar_config:set_global(Config, verbose, LogLevel).
|
||||
Level = case proplists:get_bool(quiet, Options) of
|
||||
true ->
|
||||
rebar_log:error_level();
|
||||
false ->
|
||||
DefaultLevel = rebar_log:default_level(),
|
||||
case proplists:get_all_values(verbose, Options) of
|
||||
[] ->
|
||||
DefaultLevel;
|
||||
Verbosities ->
|
||||
DefaultLevel + lists:last(Verbosities)
|
||||
end
|
||||
end,
|
||||
|
||||
rebar_config:set_global(Config, verbose, Level).
|
||||
|
||||
%%
|
||||
%% show version information and halt
|
||||
|
@ -375,12 +382,12 @@ option_spec_list() ->
|
|||
JobsHelp = io_lib:format(
|
||||
"Number of concurrent workers a command may use. Default: ~B",
|
||||
[Jobs]),
|
||||
VerboseHelp = "Verbosity level (-v, -vv, -vvv, --verbose 3). Default: 0",
|
||||
[
|
||||
%% {Name, ShortOpt, LongOpt, ArgSpec, HelpMsg}
|
||||
{help, $h, "help", undefined, "Show the program options"},
|
||||
{commands, $c, "commands", undefined, "Show available commands"},
|
||||
{verbose, $v, "verbose", integer, VerboseHelp},
|
||||
{verbose, $v, "verbose", integer, "Verbosity level (-v, -vv)"},
|
||||
{quiet, $q, "quiet", boolean, "Quiet, only print error messages"},
|
||||
{version, $V, "version", undefined, "Show version information"},
|
||||
{force, $f, "force", undefined, "Force"},
|
||||
{defines, $D, undefined, string, "Define compiler macro"},
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
-module(rebar_log).
|
||||
|
||||
-export([init/1,
|
||||
set_level/1, default_level/0,
|
||||
set_level/1,
|
||||
error_level/0,
|
||||
default_level/0,
|
||||
log/3]).
|
||||
|
||||
-define(ERROR_LEVEL, 0).
|
||||
|
@ -60,6 +62,7 @@ log(Level, Str, Args) ->
|
|||
ok
|
||||
end.
|
||||
|
||||
error_level() -> ?ERROR_LEVEL.
|
||||
default_level() -> ?WARN_LEVEL.
|
||||
|
||||
%% ===================================================================
|
||||
|
@ -69,8 +72,6 @@ default_level() -> ?WARN_LEVEL.
|
|||
valid_level(Level) ->
|
||||
erlang:max(?ERROR_LEVEL, erlang:min(Level, ?DEBUG_LEVEL)).
|
||||
|
||||
error_level() -> ?ERROR_LEVEL.
|
||||
|
||||
should_log(debug, _) -> true;
|
||||
should_log(info, debug) -> false;
|
||||
should_log(info, _) -> true;
|
||||
|
|
Loading…
Reference in a new issue