examples: onelinecsv
This commit is contained in:
parent
17c7600d4c
commit
112668f10c
33
examples/onelinecsv.hs
Executable file
33
examples/onelinecsv.hs
Executable 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
|
||||||
|
]
|
||||||
Loading…
Reference in New Issue
Block a user