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
 | 
						|
      ]
 |