42 lines
1 KiB
Python
Executable file
42 lines
1 KiB
Python
Executable file
#! /usr/bin/python3
|
|
|
|
import filemanip
|
|
import re
|
|
import sys
|
|
|
|
def filter_dbmem(rec):
|
|
if len(rec.fields) < 3:
|
|
return None
|
|
if ";" not in rec.fields[1]:
|
|
return None
|
|
(date, purview) = re.split(";\s*", rec.fields[1], 1)
|
|
fields = [""] * 16
|
|
fields[6] = rec.fields[0]
|
|
fields[5] = rec.fields[2]
|
|
fields[11] = purview
|
|
fields[0] = date
|
|
return Record(fields)
|
|
|
|
def call_filter(dtbname, recs):
|
|
final = []
|
|
for rec in recs:
|
|
if rec.fields[0].startswith("#"):
|
|
continue
|
|
if dtbname == "dbmem":
|
|
return filter_dbmem(rec)
|
|
else:
|
|
raise ValueError("no such filter for database")
|
|
result = filter_dbmem(rec)
|
|
if result is not None:
|
|
final.append(result)
|
|
return final
|
|
|
|
def main(args):
|
|
recs = filemanip.FileStorage('csv', "/dev/stdin").load()
|
|
if len(args) == 0:
|
|
raise ValueError("need a type of database")
|
|
dtbname = args[0]
|
|
call_filter(dtbname, recs)
|
|
filemanip.FileStorage('csv', "/dev/stdout").store(recs)
|
|
|
|
main(sys.argv[1:])
|