task-machine/app/Main.hs
2018-09-12 19:57:14 +00:00

39 lines
936 B
Haskell

module Main where
import Control.Applicative
import Control.Monad
import qualified Brick as B
import qualified Options.Applicative as O
import TaskMachine.LTask
import TaskMachine.UI
import TaskMachine.UI.Types
data Options = Options
{ oTodofile :: FilePath
} deriving (Show)
opts :: O.Parser Options
opts = pure Options
<*> todofile
where
todofile = O.strArgument
( O.help "The file containing all your tasks"
<> O.metavar "TODOFILE"
)
optsInfo :: O.ParserInfo Options
optsInfo = O.info (opts <**> O.helper)
( O.fullDesc
-- <> O.progDesc "program description"
-- <> O.header "help header"
)
main :: IO()
main = do
o <- O.execParser optsInfo
result <- loadLTasks (oTodofile o)
case result of
Left parseError -> putStrLn parseError
Right tasks -> void $ B.defaultMain (myApp defaultTheme) (startUIState tasks)