mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
scripts: Add filter argument to shadacat.py
This commit is contained in:
parent
e38cbb9367
commit
a85163a5d2
@ -60,9 +60,22 @@ def mnormalize(o):
|
||||
|
||||
|
||||
fname = sys.argv[1]
|
||||
try:
|
||||
filt = sys.argv[2]
|
||||
except IndexError:
|
||||
filt = lambda entry: True
|
||||
else:
|
||||
_filt = filt
|
||||
filt = lambda entry: eval(_filt, globals(), {'entry': entry})
|
||||
|
||||
poswidth = len(str(os.stat(fname).st_size or 1000))
|
||||
|
||||
|
||||
class FullEntry(dict):
|
||||
def __init__(self, val):
|
||||
self.__dict__.update(val)
|
||||
|
||||
|
||||
with open(fname, 'rb') as fp:
|
||||
unpacker = msgpack.Unpacker(file_like=fp, read_size=1)
|
||||
max_type = max(typ.value for typ in EntryTypes)
|
||||
@ -82,5 +95,15 @@ with open(fname, 'rb') as fp:
|
||||
else:
|
||||
entry = unpacker.unpack()
|
||||
typ = EntryTypes(typ)
|
||||
full_entry = FullEntry({
|
||||
'value': entry,
|
||||
'timestamp': timestamp,
|
||||
'time': time,
|
||||
'length': length,
|
||||
'pos': pos,
|
||||
'type': typ,
|
||||
})
|
||||
if not filt(full_entry):
|
||||
continue
|
||||
print('%*u %13s %s %5u %r' % (
|
||||
poswidth, pos, typ.name, time.isoformat(), length, mnormalize(entry)))
|
||||
|
Loading…
Reference in New Issue
Block a user