examples: onelinecsv

This commit is contained in:
Simon Michael 2017-07-01 17:29:09 +01:00
parent 17c7600d4c
commit 112668f10c

33
examples/onelinecsv.hs Executable file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env stack
{- stack runghc
--package hledger-lib
--package text
-}
{- example of generating one CSV line per txn. assumes hledger-lib 1.0+ -}
import Control.Monad
import qualified Data.Text as T
import Data.List
import Hledger
main :: IO ()
main = do
Right j <- readJournalFile Nothing Nothing False "examples/sample.journal"
putStrLn $ intercalate ", " $ [
"date"
,"description"
,"account1"
,"amount1"
,"account2"
,"amount2"
]
forM_ (jtxns j) $ \t -> do
let (p1:p2:_) = tpostings t
putStrLn $ intercalate ", " $ map quoteIfNeeded [
show $ tdate t
,T.unpack $ tdescription t
,T.unpack $ paccount p1
,show $ pamount p1
,T.unpack $ paccount p2
,show $ pamount p2
]