rearrange options and make output cleaner
This commit is contained in:
parent
864b78e872
commit
73fa74a35b
43
iavlread
43
iavlread
@ -67,39 +67,34 @@ def get_args():
|
|||||||
|
|
||||||
parser.add_argument('-d', '--database', help='Path to database (application.db folder)')
|
parser.add_argument('-d', '--database', help='Path to database (application.db folder)')
|
||||||
parser.add_argument('-H', '--height', type=int, help='Block height')
|
parser.add_argument('-H', '--height', type=int, help='Block height')
|
||||||
parser.add_argument('-k', '--keyformat', help='Key format for maps (e.g. Qss)')
|
# parser.add_argument('-j', '--json', action='store_true', help='JSON output')
|
||||||
parser.add_argument('-v', '--valueformat', help='Value format')
|
|
||||||
|
def add_key_cmd(subparsers, cmd, help, optional: bool):
|
||||||
|
subp = subparsers.add_parser(cmd, help = help)
|
||||||
|
subp.add_argument('-k', '--keyformat', help='Key format for maps (e.g. Qss)')
|
||||||
|
subp.add_argument('-v', '--valueformat', help='Value format')
|
||||||
|
subp.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
||||||
|
subp.add_argument('key', nargs='*' if optional else '+', help = 'Key parts')
|
||||||
|
return subp
|
||||||
|
|
||||||
subparsers = parser.add_subparsers(required=True, dest='cmd')
|
subparsers = parser.add_subparsers(required=True, dest='cmd')
|
||||||
p_max_height = subparsers.add_parser('max_height', help = 'Get the max block height in the snapshot')
|
p_max_height = subparsers.add_parser('max_height', help = 'Get the max block height in the snapshot')
|
||||||
p_max_height.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
p_max_height.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
||||||
p_min_height = subparsers.add_parser('min_height', help = 'Get the min block height in the snapshot')
|
p_min_height = subparsers.add_parser('min_height', help = 'Get the min block height in the snapshot')
|
||||||
p_min_height.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
p_min_height.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
||||||
p_get = subparsers.add_parser('get', help = 'Retrieve a single item')
|
add_key_cmd(subparsers, 'get', 'Retrieve a single item', False)
|
||||||
p_get.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
add_key_cmd(subparsers, 'history', 'Get all stored past values of the item', False)
|
||||||
p_get.add_argument('key', nargs='+', help = 'Key parts')
|
add_key_cmd(subparsers, 'count', 'Count number of items with a prefix', True)
|
||||||
p_hist = subparsers.add_parser('history', help = 'Get all stored past values of the item')
|
add_key_cmd(subparsers, 'iterate', 'Iterate over items with some prefix', True)
|
||||||
p_hist.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
add_key_cmd(subparsers, 'iterate_keys', 'Iterate over items with some prefix, output keys only', True)
|
||||||
p_hist.add_argument('key', nargs='+', help = 'Key parts')
|
add_key_cmd(subparsers, 'iterate_values', 'Iterate over items with some prefix, output values only', True)
|
||||||
p_count = subparsers.add_parser('count', help = 'Count number of items with a prefix')
|
|
||||||
p_count.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
|
||||||
p_count.add_argument('key', nargs='*', help = 'Key parts')
|
|
||||||
p_iterate = subparsers.add_parser('iterate', help = 'Iterate over items with some prefix')
|
|
||||||
p_iterate.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
|
||||||
p_iterate.add_argument('key', nargs='*', help = 'Key parts')
|
|
||||||
p_iterate = subparsers.add_parser('iterate_keys', help = 'Iterate over items with some prefix, output keys only')
|
|
||||||
p_iterate.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
|
||||||
p_iterate.add_argument('key', nargs='*', help = 'Key parts')
|
|
||||||
p_iterate = subparsers.add_parser('iterate_values', help = 'Iterate over items with some prefix, output values only')
|
|
||||||
p_iterate.add_argument('prefix', help = 'Prefix (e.g. "s/k:emissions/")')
|
|
||||||
p_iterate.add_argument('key', nargs='*', help = 'Key parts')
|
|
||||||
|
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
def run(args):
|
def run(args):
|
||||||
dbpath = args.database if args.database is not None else 'data/application.db'
|
dbpath = args.database if args.database is not None else 'data/application.db'
|
||||||
keyformat = args.keyformat if args.keyformat is not None else ''
|
keyformat = args.keyformat if hasattr(args, 'keyformat') and args.keyformat is not None else ''
|
||||||
valueformat = args.valueformat if args.valueformat is not None else 'b'
|
valueformat = args.valueformat if hasattr(args, 'valueformat') and args.valueformat is not None else 'b'
|
||||||
|
|
||||||
if args.cmd == 'max_height' or args.cmd == 'min_height' or args.key is None or len(args.key) == 0:
|
if args.cmd == 'max_height' or args.cmd == 'min_height' or args.key is None or len(args.key) == 0:
|
||||||
key = None
|
key = None
|
||||||
@ -147,11 +142,11 @@ def run(args):
|
|||||||
try:
|
try:
|
||||||
for k, v in it:
|
for k, v in it:
|
||||||
if args.cmd == 'iterate_keys':
|
if args.cmd == 'iterate_keys':
|
||||||
print(k)
|
print(' '.join([str(x) for x in k]))
|
||||||
elif args.cmd == 'iterate_values':
|
elif args.cmd == 'iterate_values':
|
||||||
print(decode_output(valueformat,v))
|
print(decode_output(valueformat,v))
|
||||||
else:
|
else:
|
||||||
print((k, decode_output(valueformat, v)))
|
print(' '.join([str(x) for x in k]), decode_output(valueformat, v))
|
||||||
except BrokenPipeError:
|
except BrokenPipeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user