hledger/extra/equity.hs
2012-01-30 17:16:39 +00:00

24 lines
768 B
Haskell

#!/usr/bin/env runhaskell
{-
Print an entry posting the total balance of the specified account and
subaccounts, or all accounts, from the default journal. Like ledger's
equity command. Useful when starting a new journal or closing the books.
Usage: equity.hs [ACCTPAT]
-}
import Hledger
import Hledger.Cli
import System.Environment
main = do
j <- myJournal
d <- getCurrentDay
args <- getArgs
let acctpat = head $ args ++ [""]
(acctbals,_) = balanceReport [Flat] (optsToFilterSpec [] [acctpat] d) j
txn = nulltransaction{
tdate=d,
tpostings=[nullposting{paccount=a,pamount=b} | (a,_,_,b) <- acctbals]
++ [nullposting{paccount="equity:opening balances",pamount=missingamt}]}
putStr $ show txn