packages feed

werewolf-0.1.0.0: app/Main.hs

{-|
Module      : Main

Copyright   : (c) Henry J. Wylde, 2015
License     : BSD3
Maintainer  : public@hjwylde.com
-}

{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# OPTIONS_HADDOCK hide, prune #-}

module Main (
    main,
) where

import Options.Applicative

import qualified Werewolf.Commands.End       as End
import qualified Werewolf.Commands.Help      as Help
import qualified Werewolf.Commands.Interpret as Interpret
import qualified Werewolf.Commands.Start     as Start
import qualified Werewolf.Commands.Vote      as Vote
import           Werewolf.Options

main :: IO ()
main = customExecParser werewolfPrefs werewolfInfo >>= handle

handle :: Options -> IO ()
handle (Options caller command) = case command of
    End                 -> End.handle caller
    Help options        -> Help.handle caller options
    Interpret options   -> Interpret.handle caller options
    Start options       -> Start.handle caller options
    Vote options        -> Vote.handle caller options