mconf: Use pager only when printing configuration
Fixes:
@@ -36,7 +36,7 @@ def add_arguments(parser: 'argparse.ArgumentParser') -> None:
parser.add_argument('builddir', nargs='?', default='.')
parser.add_argument('--clearcache', action='store_true', default=False,
help='Clear cached state (e.g. found dependencies)')
- parser.add_argument('--no-pager', action='store_true', default=False,
+ parser.add_argument('--no-pager', action='store_false', dest='pager',
help='Do not redirect output to a pager')
def make_lower_case(val: T.Any) -> T.Union[str, T.List[T.Any]]: # T.Any because of recursion...
@@ -205,7 +205,10 @@ class Conf:
printable_value = '<inherited from main project>'
self.add_option(str(root), o.description, printable_value, o.choices)
- def print_conf(self):
+ def print_conf(self, pager: bool):
+ if pager:
+ mlog.start_pager()
+
def print_default_values_warning():
mlog.warning('The source directory instead of the build directory was specified.')
mlog.warning('Only the default values for the project are printed, and all command line parameters are ignored.')
@@ -297,13 +300,11 @@ class Conf:
def run(options):
coredata.parse_cmd_line_options(options)
builddir = os.path.abspath(os.path.realpath(options.builddir))
- if not options.no_pager:
- mlog.start_pager()
c = None
try:
c = Conf(builddir)
if c.default_values_only:
- c.print_conf()
+ c.print_conf(options.pager)
return 0
save = False
@@ -315,7 +316,7 @@ def run(options):
c.clear_cache()
save = True
else:
- c.print_conf()
+ c.print_conf(options.pager)
if save:
c.save()
mintro.update_build_options(c.coredata, c.build.environment.info_dir)
