24 lines
		
	
	
		
			768 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			768 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
#!/usr/bin/env runhaskell
 | 
						|
{-
 | 
						|
Print an entry posting the total balance of the specified account and
 | 
						|
subaccounts, or all accounts, from the default journal. Like ledger's
 | 
						|
equity command. Useful when starting a new journal or closing the books.
 | 
						|
 | 
						|
Usage: equity.hs [ACCTPAT]
 | 
						|
-}
 | 
						|
import Hledger
 | 
						|
import Hledger.Cli
 | 
						|
import System.Environment
 | 
						|
 | 
						|
main = do
 | 
						|
  j <- myJournal
 | 
						|
  d <- getCurrentDay
 | 
						|
  args <- getArgs
 | 
						|
  let acctpat = head $ args ++ [""]
 | 
						|
      (acctbals,_) = balanceReport [Flat] (optsToFilterSpec [] [acctpat] d) j
 | 
						|
      txn = nulltransaction{
 | 
						|
              tdate=d,
 | 
						|
              tpostings=[nullposting{paccount=a,pamount=b} | (a,_,_,b) <- acctbals]
 | 
						|
                         ++ [nullposting{paccount="equity:opening balances",pamount=missingamt}]}
 | 
						|
  putStr $ show txn
 |