Here's the whole thing, with comments.

My workflow is to import all my ledger entries from my credit card CSV
data into my Queue file, where I tag each entry with an expense report
# (AISERXXXX). This script moves those out to separate files,
regenerates my md5sums for csv2ledger, updates the include list, and
adds any new entries to VC.

-------------------------------------------------------------------------
#!/bin/sh -e

# This script redistributes all AISER entries to seperate files.

echo "Checking for Queue.dat"

[ -f Queue.dat ] || exit -1

echo "Refiling to Reports"

cat Queue.dat \
    | grep AISER \
    | tr : '\n' \
    | tr -d ' ' \
    | grep ^AISER \
    | sort -u \
    | while read X ; do \
    cat Queue.dat \
    | perl -00 -ne "print if /; ER: $X/" \
    >> Reports/$X.dat ; done


# Remove relocated entries & filter out MD5s

echo "Removing refiled entries"

mv Queue.dat oldQueue.dat

cat oldQueue.dat \
    | grep -v '^; Relocated sums:' \
    | perl -00 -ne "print unless /; ER: AISER[0-9]{4}/" \
    > Queue.dat

# Add back MD5's

echo "Renegerating .MD5Sum.cache"

cat Queue.dat Reports/*.dat Data/*.dat \
    | grep MD5Sum \
    | tr ' ' '\n' \
    | egrep '^[0-9a-f]{32}$' \
    | xargs -n 25 echo \
    > .MD5Sum.cache

# Regen .ledger includes

echo "Regenerating .ledger include list"

mv .ledger .ledger.old

cat .ledger.old \
    | grep -v 'include \./' \
    > .ledger

find . -type f -name '*.dat' \
    | grep -v '\.ledger' \
    | grep -v old \
    | sort \
    | awk '{print "!include " $1 }' \
    >> .ledger


# Update BZR

bzr add Reports/AISER*.dat





------------------------------------------------------------------
Russell Adams                            [email protected]

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

Reply via email to