hledger/extra/hledger-balance-csv.hs
2013-12-13 19:10:54 -08:00

33 lines
812 B
Haskell
Executable File

#!/usr/bin/env runhaskell
{-|
hledger-balance-csv [OPTIONS] [ARGS]
Show a balance report as CSV.
-}
import Hledger
import Hledger.Cli
import System.Console.CmdArgs.Explicit
import Text.CSV
argsmode =
(defCommandMode ["balance-csv"]) {
modeHelp = "show matched postings accounts and their balances as CSV"
,modeGroupFlags = Group {
groupNamed = []
,groupUnnamed = inputflags ++ reportflags ++ helpflags
,groupHidden = []
}
}
main = getCliOpts argsmode >>= printBalanceCsv
printBalanceCsv opts = withJournalDo opts $
\CliOpts{reportopts_=ropts} j -> do
d <- getCurrentDay
let (items,_) = balanceReport ropts (queryFromOpts d ropts) j
putStrLn $ printCSV $
["account","balance"] :
[[a, showMixedAmountWithoutPrice b] | (a, _, _, b) <- items]