module Examine.Options
( ExamineArguments (..)
, Examine
, examineArguments
) where
import Control.Monad.Logger
import Control.Monad.Trans.Reader
import Options.Applicative
data ExamineArguments = ExamineArguments
{ argsInFile :: Maybe FilePath
, argsNewickIqTree :: Bool }
type Examine = LoggingT (ReaderT ExamineArguments IO)
examineArguments :: Parser ExamineArguments
examineArguments = ExamineArguments <$>
optional inFile
<*> newickIqTree
inFile :: Parser FilePath
inFile = strArgument $
metavar "INPUT-FILE" <>
help "Read trees from INPUT-FILE"
newickIqTree :: Parser Bool
newickIqTree = switch $
long "newick-iqtree"
<> short 'i'
<> help "Use IQ-TREE Newick format (internal node labels are branch support values)"