aboutsummaryrefslogtreecommitdiff
path: root/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs19
1 files changed, 14 insertions, 5 deletions
diff --git a/Main.hs b/Main.hs
index 416b65a..2144d9c 100644
--- a/Main.hs
+++ b/Main.hs
@@ -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."
nihil fit ex nihilo