move main module comment

This commit is contained in:
Simon Michael 2008-10-10 07:39:13 +00:00
parent d1dfcafc39
commit 688f2447a5

View File

@ -11,23 +11,6 @@ simple ledger-compatible register & balance reports from a plain text
ledger file, and demonstrates a (naive) purely functional ledger file, and demonstrates a (naive) purely functional
implementation of ledger. implementation of ledger.
This module includes some helpers for working with your ledger in ghci. Examples:
> $ rm -f hledger.o
> $ ghci hledger.hs
> *Main> l <- ledger
> Ledger with 696 entries, 132 accounts
> *Main> putStr $ drawTree $ treemap show $ accountnametree l
> ...
> *Main> putStr $ showLedgerAccountBalances l 1
> ...
> *Main> printregister l
> ...
> *Main> accounts l
> ...
> *Main> accountnamed "expenses:food:groceries"
> Account expenses:food:groceries with 60 transactions
-} -}
module Main module Main
@ -49,7 +32,7 @@ main = do
run cmd opts args run cmd opts args
| Help `elem` opts = putStr usage | Help `elem` opts = putStr usage
| Version `elem` opts = putStr version | Version `elem` opts = putStr version
| cmd `isPrefixOf` "selftest" = hunit >> quickcheck >> return () | cmd `isPrefixOf` "selftest" = hunit >> return ()
| cmd `isPrefixOf` "print" = parseLedgerAndDo opts args printentries | cmd `isPrefixOf` "print" = parseLedgerAndDo opts args printentries
| cmd `isPrefixOf` "register" = parseLedgerAndDo opts args printregister | cmd `isPrefixOf` "register" = parseLedgerAndDo opts args printregister
| cmd `isPrefixOf` "balance" = parseLedgerAndDo opts args printbalance | cmd `isPrefixOf` "balance" = parseLedgerAndDo opts args printbalance
@ -68,10 +51,8 @@ parseLedgerAndDo opts args cmd =
descpat = regexFor descpats descpat = regexFor descpats
(acctpats,descpats) = parseAccountDescriptionArgs args (acctpats,descpats) = parseAccountDescriptionArgs args
-- ghci helpers -- | get a RawLedger from the file your LEDGER environment
-- variable points to or (WARNING) an empty one if there was a problem.
-- | get a RawLedger from the file your LEDGER environment variable points to
-- or (WARNING) an empty one if there was a problem.
myrawledger :: IO RawLedger myrawledger :: IO RawLedger
myrawledger = do myrawledger = do
parsed <- ledgerFilePathFromOpts [] >>= parseLedgerFile parsed <- ledgerFilePathFromOpts [] >>= parseLedgerFile
@ -90,6 +71,25 @@ rawledgerfromfile f = do
return $ either (\_ -> RawLedger [] [] [] "") id parsed return $ either (\_ -> RawLedger [] [] [] "") id parsed
-- | get a named account from your ledger file -- | get a named account from your ledger file
{-|
The above are helpers for working with your ledger in ghci. Examples:
> $ rm -f hledger.o
> $ ghci hledger.hs
> *Main> l <- myledger
> Ledger with 696 entries, 132 accounts
> *Main> putStr $ drawTree $ treemap show $ accountnametree l
> ...
> *Main> putStr $ showLedgerAccountBalances l 1
> ...
> *Main> printregister l
> ...
> *Main> accounts l
> ...
> *Main> accountnamed "expenses:food:groceries"
> Account expenses:food:groceries with 60 transactions
-}
accountnamed :: AccountName -> IO Account accountnamed :: AccountName -> IO Account
accountnamed a = myledger >>= (return . fromMaybe nullacct . Map.lookup a . accounts) accountnamed a = myledger >>= (return . fromMaybe nullacct . Map.lookup a . accounts)