mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-19 17:09:14 -05:00
tools: ynl: cli: factor out --list-attrs / --doc handling
We'll soon add more code to the --doc handling. Factor it out to avoid making main() too long. Tested-by: Gal Pressman <gal@nvidia.com> Acked-by: Stanislav Fomichev <sdf@fomichev.me> Reviewed-by: Donald Hunter <donald.hunter@gmail.com> Link: https://patch.msgid.link/20260110233142.3921386-6-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -137,6 +137,25 @@ def print_mode_attrs(ynl, mode, mode_spec, attr_set, print_request=True):
|
||||
print_attr_list(ynl, mode_spec['attributes'], attr_set)
|
||||
|
||||
|
||||
def do_doc(ynl, op):
|
||||
"""Handle --list-attrs $op, print the attr information to stdout"""
|
||||
print(f'Operation: {color(op.name, Colors.BOLD)}')
|
||||
print(op.yaml['doc'])
|
||||
|
||||
for mode in ['do', 'dump', 'event']:
|
||||
if mode in op.yaml:
|
||||
print_mode_attrs(ynl, mode, op.yaml[mode], op.attr_set, True)
|
||||
|
||||
if 'notify' in op.yaml:
|
||||
mode_spec = op.yaml['notify']
|
||||
ref_spec = ynl.msgs.get(mode_spec).yaml.get('do')
|
||||
if ref_spec:
|
||||
print_mode_attrs(ynl, 'notify', ref_spec, op.attr_set, False)
|
||||
|
||||
if 'mcgrp' in op.yaml:
|
||||
print(f"\nMulticast group: {op.yaml['mcgrp']}")
|
||||
|
||||
|
||||
# pylint: disable=too-many-locals,too-many-branches,too-many-statements
|
||||
def main():
|
||||
"""YNL cli tool"""
|
||||
@@ -286,21 +305,7 @@ def main():
|
||||
print(f'Operation {args.list_attrs} not found')
|
||||
sys.exit(1)
|
||||
|
||||
print(f'Operation: {color(op.name, Colors.BOLD)}')
|
||||
print(op.yaml['doc'])
|
||||
|
||||
for mode in ['do', 'dump', 'event']:
|
||||
if mode in op.yaml:
|
||||
print_mode_attrs(ynl, mode, op.yaml[mode], op.attr_set, True)
|
||||
|
||||
if 'notify' in op.yaml:
|
||||
mode_spec = op.yaml['notify']
|
||||
ref_spec = ynl.msgs.get(mode_spec).yaml.get('do')
|
||||
if ref_spec:
|
||||
print_mode_attrs(ynl, 'notify', ref_spec, op.attr_set, False)
|
||||
|
||||
if 'mcgrp' in op.yaml:
|
||||
print(f"\nMulticast group: {op.yaml['mcgrp']}")
|
||||
do_doc(ynl, op)
|
||||
|
||||
try:
|
||||
if args.do:
|
||||
|
||||
Reference in New Issue
Block a user