mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-26 03:42:25 +03:00
34 lines
765 B
Haskell
Executable File
34 lines
765 B
Haskell
Executable File
#!/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
|
|
]
|