mirror of
https://github.com/ntop/n2n.git
synced 2024-09-19 16:41:11 +02:00
Add a sort option to the CLI n2n-ctl tool
This commit is contained in:
parent
9c3a2c3301
commit
0e8de87e38
|
@ -106,7 +106,7 @@ class JsonUDP():
|
||||||
return self._call('w', cmdline)
|
return self._call('w', cmdline)
|
||||||
|
|
||||||
|
|
||||||
def str_table(rows, columns):
|
def str_table(rows, columns, orderby):
|
||||||
"""Given an array of dicts, do a simple table print"""
|
"""Given an array of dicts, do a simple table print"""
|
||||||
result = list()
|
result = list()
|
||||||
widths = collections.defaultdict(lambda: 0)
|
widths = collections.defaultdict(lambda: 0)
|
||||||
|
@ -127,6 +127,9 @@ def str_table(rows, columns):
|
||||||
result += "{:{}.{}} ".format(col, widths[col], widths[col])
|
result += "{:{}.{}} ".format(col, widths[col], widths[col])
|
||||||
result += "\n"
|
result += "\n"
|
||||||
|
|
||||||
|
if orderby is not None:
|
||||||
|
rows = sorted(rows, key=lambda row: row.get(orderby, 0))
|
||||||
|
|
||||||
for row in rows:
|
for row in rows:
|
||||||
for col in columns:
|
for col in columns:
|
||||||
if col in row:
|
if col in row:
|
||||||
|
@ -149,7 +152,7 @@ def subcmd_show_supernodes(rpc, args):
|
||||||
'uptime',
|
'uptime',
|
||||||
]
|
]
|
||||||
|
|
||||||
return str_table(rows, columns)
|
return str_table(rows, columns, args.orderby)
|
||||||
|
|
||||||
|
|
||||||
def subcmd_show_edges(rpc, args):
|
def subcmd_show_edges(rpc, args):
|
||||||
|
@ -162,7 +165,7 @@ def subcmd_show_edges(rpc, args):
|
||||||
'desc',
|
'desc',
|
||||||
]
|
]
|
||||||
|
|
||||||
return str_table(rows, columns)
|
return str_table(rows, columns, args.orderby)
|
||||||
|
|
||||||
|
|
||||||
def subcmd_show_help(rpc, args):
|
def subcmd_show_help(rpc, args):
|
||||||
|
@ -216,6 +219,8 @@ def main():
|
||||||
help='Also show raw internal data')
|
help='Also show raw internal data')
|
||||||
ap.add_argument('--raw', action='store_true',
|
ap.add_argument('--raw', action='store_true',
|
||||||
help='Force cmd to avoid any pretty printing')
|
help='Force cmd to avoid any pretty printing')
|
||||||
|
ap.add_argument('--orderby', action='store',
|
||||||
|
help='Hint to a pretty printer on how to sort')
|
||||||
|
|
||||||
group = ap.add_mutually_exclusive_group()
|
group = ap.add_mutually_exclusive_group()
|
||||||
group.add_argument('--read', action='store_true',
|
group.add_argument('--read', action='store_true',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user