From 59f0a2fabe96fb708290050de17fa52f0dde699c Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Wed, 8 Oct 2008 17:48:11 +0000 Subject: [PATCH] simplify parseLedgerAndDo --- hledger.hs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/hledger.hs b/hledger.hs index 14e6867ab..216400fa2 100644 --- a/hledger.hs +++ b/hledger.hs @@ -84,16 +84,15 @@ balance opts args = parseLedgerAndDo opts args printbalance -- | parse the user's specified ledger file and do some action with it -- (or report a parse error). This function makes the whole thing go. parseLedgerAndDo :: [Opt] -> [String] -> (Ledger -> IO ()) -> IO () -parseLedgerAndDo opts args cmd = do - parsed <- ledgerFilePathFromOpts opts >>= parseLedgerFile - case parsed of Left err -> parseError err - Right l -> cmd $ cacheLedger $ filterLedger begin end aregex dregex l - where - (apats,dpats) = parsePatternArgs args - aregex = regexFor apats - dregex = regexFor dpats - begin = beginDateFromOpts opts - end = endDateFromOpts opts +parseLedgerAndDo opts args cmd = + ledgerFilePathFromOpts opts >>= parseLedgerFile >>= either parseError runthecommand + where + runthecommand = cmd . cacheLedger . filterLedger begin end aregex dregex + begin = beginDateFromOpts opts + end = endDateFromOpts opts + aregex = regexFor apats + dregex = regexFor dpats + (acctpats,descpats) = parsePatternArgs args -- ghci helpers