summaryrefslogtreecommitdiff
path: root/scripts/confirm.py
blob: c3fe70abcccd4d986c8c42dcc889a8b1f8786ad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/python

# This script confirms what ledger tells you.

import sys
import os
import re

def clean(num):
    return float(re.sub("(\s+|\$|,)","",num))

running_total = 0.0
index = 1
last_line = ""

for line in os.popen("./ledger %s reg %s" % (sys.argv[1], sys.argv[2])):
    value = clean(line[55:67])
    total = clean(line[68:80])

    running_total += value
    if abs(running_total - total) > 0.001:
	print "! discrepancy of %.2f (%.2f - %.2f) at line %d:" % \
	      (running_total - total, running_total, total, index)
	print line,
	running_total = total

    index += 1
    last_line = line

balance_total = 0.0

for line in os.popen("./ledger %s bal %s" % (sys.argv[1], sys.argv[2])):
    balance_total = clean(line[:20])

if abs(balance_total - running_total) > 0.001:
    print
    print "! discrepancy of %.2f (%.2f - %.2f) between register and balance" % \
	      (balance_total - running_total, balance_total, running_total)
    print last_line,
    print line,