Skip to content
Snippets Groups Projects
Commit 9e5d3636 authored by Tommy Olofsson's avatar Tommy Olofsson
Browse files

The csv tool can follow files now.

parent c6627bc8
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python #!/usr/bin/env python
import sys import argparse
import labcomm import labcomm
import subprocess
import sys
class Reader(object): class Reader(object):
...@@ -18,6 +20,18 @@ class Reader(object): ...@@ -18,6 +20,18 @@ class Reader(object):
pass pass
class FollowingReader(object):
def __init__(self, file_):
self.tail_proc = subprocess.Popen(['tail', '-c', '+0', '-f', file_],
stdout=subprocess.PIPE)
def read(self, count):
return self.tail_proc.stdout.read(count)
def mark(self, value, decl):
pass
def flatten(sample, _type): def flatten(sample, _type):
if isinstance(_type, labcomm.sample): if isinstance(_type, labcomm.sample):
flatten(sample, _type.decl) flatten(sample, _type.decl)
...@@ -70,9 +84,15 @@ def dump_labels(current, _type): ...@@ -70,9 +84,15 @@ def dump_labels(current, _type):
def main(): def main():
if len(sys.argv) != 2: parser = argparse.ArgumentParser()
sys.exit("Give input file as argument\n") parser.add_argument('elc', type=str, help="The log file.")
d = labcomm.Decoder(Reader(sys.argv[1])) parser.add_argument('-f', '--follow', action='store_true',
help="Find all registrations that already "
"exist, then watch the file for changes. All "
"future registrations are ignored (because "
"the header has already been written).")
args = parser.parse_args()
d = labcomm.Decoder(Reader(args.elc))
seen = {} seen = {}
current = {} current = {}
_type = {} _type = {}
...@@ -92,7 +112,8 @@ def main(): ...@@ -92,7 +112,8 @@ def main():
# Do another pass to extract the data. # Do another pass to extract the data.
current = {} current = {}
d = labcomm.Decoder(Reader(sys.argv[1])) reader = FollowingReader(args.elc) if args.follow else Reader(args.elc)
d = labcomm.Decoder(reader)
while True: while True:
try: try:
o, t = d.decode() o, t = d.decode()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment