Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

app: Add -q argument for quiet mode #723

Merged
merged 1 commit into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading