mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-29 13:22:27 +03:00
d4965b87ff
hack-handler-simpleserver is presumably quite a bit easier to install than happstack, and so far fits hledger's needs just as well, so it is now the default when installing with -fweb. To build with happstack, use -fwebhappstack instead. hledger --version shows which webserver was built. Also webserver thread management has been simplified so should be more consistent across platforms.
48 lines
1.7 KiB
Haskell
48 lines
1.7 KiB
Haskell
{-# LANGUAGE CPP #-}
|
|
{-|
|
|
The main function is in this separate module so it can be imported by
|
|
benchmark scripts. As a side benefit, this avoids a weakness of sp, which
|
|
doesn't allow both #! and \{\-\# lines.
|
|
-}
|
|
|
|
module HledgerMain where
|
|
#if __GLASGOW_HASKELL__ <= 610
|
|
import Prelude hiding (putStr, putStrLn)
|
|
import System.IO.UTF8
|
|
#endif
|
|
|
|
import Commands.All
|
|
import Ledger
|
|
import Options
|
|
import Tests
|
|
import Utils (withLedgerDo)
|
|
import Version (versionmsg, binaryfilename)
|
|
|
|
main :: IO ()
|
|
main = do
|
|
(opts, cmd, args) <- parseArguments
|
|
run cmd opts args
|
|
where
|
|
run cmd opts args
|
|
| Help `elem` opts = putStr usage
|
|
| Version `elem` opts = putStrLn versionmsg
|
|
| BinaryFilename `elem` opts = putStrLn binaryfilename
|
|
| cmd `isPrefixOf` "balance" = withLedgerDo opts args cmd balance
|
|
| cmd `isPrefixOf` "convert" = withLedgerDo opts args cmd convert
|
|
| cmd `isPrefixOf` "print" = withLedgerDo opts args cmd print'
|
|
| cmd `isPrefixOf` "register" = withLedgerDo opts args cmd register
|
|
| cmd `isPrefixOf` "histogram" = withLedgerDo opts args cmd histogram
|
|
| cmd `isPrefixOf` "add" = withLedgerDo opts args cmd add
|
|
| cmd `isPrefixOf` "stats" = withLedgerDo opts args cmd stats
|
|
#ifdef VTY
|
|
| cmd `isPrefixOf` "ui" = withLedgerDo opts args cmd ui
|
|
#endif
|
|
#if defined(WEB) || defined(WEBHAPPSTACK)
|
|
| cmd `isPrefixOf` "web" = withLedgerDo opts args cmd web
|
|
#endif
|
|
#ifdef CHART
|
|
| cmd `isPrefixOf` "chart" = withLedgerDo opts args cmd chart
|
|
#endif
|
|
| cmd `isPrefixOf` "test" = runtests opts args >> return ()
|
|
| otherwise = putStr usage
|