extra: make hledger-equity support -f etc. (Julien Moutinho)
This commit is contained in:
		
							parent
							
								
									5885914547
								
							
						
					
					
						commit
						06a8ec07c5
					
				| @ -16,16 +16,31 @@ Usage: hledger-equity [ACCTPAT] | |||||||
| import Hledger.Cli | import Hledger.Cli | ||||||
| import System.Environment | import System.Environment | ||||||
| 
 | 
 | ||||||
|  | argsmode :: Mode RawOpts | ||||||
|  | argsmode = (defCommandMode ["equity"]) | ||||||
|  |   { modeHelp = "print a journal entry posting the total balance of all accounts" | ||||||
|  |     ++ " (or the specified account and its subaccounts)" | ||||||
|  |     , modeGroupFlags = Group | ||||||
|  |       { groupNamed = | ||||||
|  |          [ ("Input",inputflags) | ||||||
|  |          , ("Reporting",reportflags) | ||||||
|  |          , ("Misc",helpflags) | ||||||
|  |          ] | ||||||
|  |       , groupUnnamed = [] | ||||||
|  |       , groupHidden = [] | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | main :: IO () | ||||||
| main = do | main = do | ||||||
|   putStrLn "(-f option not supported, see hledger-accountnames.hs for how to add it)" |   opts <- getCliOpts argsmode | ||||||
|   j <- defaultJournal |   withJournalDo opts $ | ||||||
|   d <- getCurrentDay |    \CliOpts{reportopts_=ropts} j -> do | ||||||
|   args <- getArgs |         d <- getCurrentDay | ||||||
|   let query = Or $ map Acct args |         let ropts_ = ropts{flat_=True} | ||||||
|       ropts = defreportopts{flat_=True} |         let (acctbals,_) = balanceReport ropts_ (queryFromOpts d ropts_) j | ||||||
|       (acctbals,_) = balanceReport ropts query j |         let balancingamt = negate $ sum $ map (\((_,_,_),b) -> b) acctbals | ||||||
|       balancingamt = negate $ sum $ map (\((_,_,_),b) -> b) acctbals |         let ps = [posting{paccount=a, pamount=b} | ((a,_,_),b) <- acctbals] | ||||||
|       ps = [posting{paccount=a, pamount=b} | ((a,_,_),b) <- acctbals] |                  ++ [posting{paccount="equity:opening balances", pamount=balancingamt}] | ||||||
|            ++ [posting{paccount="equity:opening balances", pamount=balancingamt}] |         let txn = nulltransaction{tdate=d, tpostings=ps} | ||||||
|       txn = nulltransaction{tdate=d, tpostings=ps} |         putStr $ showTransactionUnelided txn | ||||||
|   putStr $ showTransactionUnelided txn |  | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user