From f2bb28215ef3c28c53cb39babbefe690f6bbb1bb Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Sun, 23 Jun 2019 18:18:47 +0200 Subject: [PATCH] Add completers for event names --- tracetools_trace/tools/args.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tracetools_trace/tools/args.py b/tracetools_trace/tools/args.py index fbf3b09..5959f8c 100644 --- a/tracetools_trace/tools/args.py +++ b/tracetools_trace/tools/args.py @@ -4,6 +4,17 @@ import time from . import names +class DefaultArgValueCompleter: + """Callable returning an arg's default value.""" + + def __init__(self, arg): + default = arg.default + self.list = default if isinstance(default, list) else [default] + + def __call__(self, **kwargs): + return self.list + + def parse_args(): """ Parse args for tracing. @@ -22,17 +33,19 @@ def add_arguments(parser): '--path', '-p', dest='path', default='/tmp', help='path of the base directory for trace data (default: %(default)s)') - parser.add_argument( + arg = parser.add_argument( '--ust', '-u', nargs='*', dest='events_ust', default=names.DEFAULT_EVENTS_ROS, help='the ROS UST events to enable (default: all events) ' '[to disable all UST events, ' 'provide this flag without any event name]') - parser.add_argument( + arg.completer = DefaultArgValueCompleter(arg) + arg = parser.add_argument( '--kernel', '-k', nargs='*', dest='events_kernel', default=names.DEFAULT_EVENTS_KERNEL, help='the kernel events to enable (default: all events) ' '[to disable all UST events, ' 'provide this flag without any event name]') + arg.completer = DefaultArgValueCompleter(arg) parser.add_argument( '--list', '-l', dest='list', action='store_true', help='display lists of enabled events (default: %(default)s)')