diff --git a/write_logfile.py b/write_logfile.py new file mode 100755 index 0000000..9994a27 --- /dev/null +++ b/write_logfile.py @@ -0,0 +1,38 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import sys +import db +from helpers import * + +# Writes a log of all transactions to a text file. +# +# Usage: +# ./write_logfile.py filename +# or (writing to stdout): +# ./write_logfile.py + +def write_log(f): + session = Session() + line_format = '%s|%s|%s|%s|%s|%s\n' + transaction_list = session.query(Transaction).all() + for transaction in transaction_list: + if transaction.purchase: + products = ', '.join(map(lambda ent: ent.product.name, + transaction.purchase.entries)) + description = '' + else: + products = '' + description = transaction.description + line = line_format % ('purchase', transaction.time, products, + transaction.user.name, transaction.amount, transaction.description) + f.write(line.encode('utf8')) + session.close() + +if len(sys.argv) < 2: + write_log(sys.stdout) +else: + filename = sys.argv[1] + print 'Writing log to ' + filename + with open(filename, 'w') as f: + write_log(f)