diff options
Diffstat (limited to 'Main.hs')
-rw-r--r-- | Main.hs | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -8,15 +8,18 @@ module Main (main) where +import Control.Monad.Reader(runReaderT) +import Control.Monad.State(runStateT) import System.Environment import System.Exit import System.FilePath(takeDirectory) -import Lazymail -import Email -import Maildir -import Screen -import State +import Lazymail.Config(customConfig) +import Lazymail.Email +import Lazymail.Maildir +import Lazymail.Screen +import Lazymail.State +import Lazymail.Types parse ["-h"] = usage >> exit parse ["--help"] = usage >> exit @@ -24,6 +27,12 @@ parse ["-v"] = version >> exit parse ["--version"] = version >> exit parse _ = run entryPoint +run :: Lazymail a -> IO (a, LazymailState) +run k = + let config = customConfig + state = initialState { basePath = initialPath config } + in runStateT (runReaderT k config) state + usage = putStrLn . unlines $ usageText where usageText = ["Usage: ./Main [-vh] <maildirs>" ," where <maildirs> is a directory with Maildirs, or a Maildir itself." |