Skip to content

Commit

Permalink
app: Add -q argument for quiet mode
Browse files Browse the repository at this point in the history
Add a west argument to decrease the verbosity.

Signed-off-by: Pieter De Gendt <[email protected]>
  • Loading branch information
pdgendt authored and marc-hb committed Aug 30, 2024
1 parent d55f585 commit 0612a6d
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 5 deletions.
26 changes: 22 additions & 4 deletions src/west/app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ def consume_more_args(rest):
elif rest.startswith('v'):
verbosity += 1
consume_more_args(rest[1:])
elif rest.startswith('q'):
verbosity -= 1
consume_more_args(rest[1:])
elif rest.startswith('z'):
if not rest[1:]:
expecting_zephyr_base = True
Expand All @@ -121,8 +124,13 @@ def consume_more_args(rest):
elif arg.startswith('-v'):
verbosity += 1
consume_more_args(arg[2:])
elif arg.startswith('-q'):
verbosity -= 1
consume_more_args(arg[2:])
elif arg == '--verbose':
verbosity += 1
elif arg == '--quiet':
verbosity -= 1
elif arg.startswith('-z'):
if arg == '-z':
expecting_zephyr_base = True
Expand Down Expand Up @@ -465,6 +473,10 @@ def make_parsers(self):
help='''Display verbose output. May be given
multiple times to increase verbosity.''')

parser.add_argument('-q', '--quiet', default=0, action='count',
help='''Display less verbose output. May be given
multiple times to decrease verbosity.''')

parser.add_argument('-V', '--version', action='version',
version=f'West version: v{__version__}',
help='print the program version and exit')
Expand All @@ -485,7 +497,7 @@ def run_command(self, argv, early_args):
# Set up logging verbosity before running the command, for
# backwards compatibility. Remove this when we can part ways
# with the log module.
log.set_verbosity(args.verbose)
log.set_verbosity(args.verbose - args.quiet)

# If we were run as 'west -h ...' or 'west --help ...',
# monkeypatch the args namespace so we end up running Help. The
Expand Down Expand Up @@ -594,8 +606,12 @@ def setup_west_logging(self, verbosity):
logger.setLevel(logging.DEBUG)
elif verbosity == 1:
logger.setLevel(logging.INFO)
else:
elif verbosity == 0:
logger.setLevel(logging.WARNING)
elif verbosity == -1:
logger.setLevel(logging.ERROR)
else:
logger.setLevel(logging.CRITICAL)

logger.addHandler(LogHandler())

Expand Down Expand Up @@ -1070,8 +1086,10 @@ def mie_msg(mie):
return ret

def adjust_command_verbosity(command, args):
command.verbosity = min(command.verbosity + args.verbose,
Verbosity.DBG_EXTREME)
command.verbosity = max(
min(command.verbosity + args.verbose - args.quiet, Verbosity.DBG_EXTREME),
Verbosity.QUIET
)

def dump_traceback():
# Save the current exception to a file and return its path.
Expand Down
11 changes: 10 additions & 1 deletion src/west/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ def dbg(self, *args, level: Verbosity = Verbosity.DBG, end: str = '\n'):
:param args: sequence of arguments to print
:param level: verbosity level of the message
'''
if level > self.verbosity:
if self.verbosity < level:
return
print(*args, end=end)

Expand All @@ -422,6 +422,9 @@ def inf(self, *args, colorize: bool = False, end: str = '\n'):
is undefined or true, and stdout is a terminal, then
the message is printed in green.
'''
if self.verbosity < Verbosity.INF:
return

if not self.color_ui:
colorize = False

Expand Down Expand Up @@ -460,6 +463,9 @@ def wrn(self, *args, end: str = '\n'):
:param args: sequence of arguments to print.'''

if self.verbosity < Verbosity.WRN:
return

if self.color_ui:
print(WRN_COLOR, end='', file=sys.stderr)

Expand All @@ -484,6 +490,9 @@ def err(self, *args, fatal: bool = False, end: str = '\n'):
"FATAL ERROR: "; otherwise, "ERROR: " is used.
'''

if self.verbosity < Verbosity.ERR:
return

if self.color_ui:
print(ERR_COLOR, end='', file=sys.stderr)

Expand Down
4 changes: 4 additions & 0 deletions src/west/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ def inf(*args, colorize=False):
the message is printed in green.
'''
deprecated()
if VERBOSE < 0:
return

if not _use_colors():
colorize = False
Expand Down Expand Up @@ -126,6 +128,8 @@ def wrn(*args):
If the configuration option ``color.ui`` is undefined or true and
stdout is a terminal, then the message is printed in yellow.'''
deprecated()
if VERBOSE < -1:
return

if _use_colors():
print(WRN_COLOR, end='', file=sys.stderr)
Expand Down

0 comments on commit 0612a6d

Please sign in to comment.