{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Applicative ((<|>), optional)
import Data.Text (Text, pack)
import Data.Text.Read (decimal, double)
import Flags.Applicative
import System.Environment (getArgs)
data Options = Options
{ rootPath :: Text
, logLevel :: Int
, context :: Maybe Text
, values :: [Double]
} deriving Show
optionsParser :: FlagParser Options
optionsParser = Options <$> (textFlag "root" "path to the root" <|> textFlag "url" "")
<*> (autoFlag "log_level" "" <|> pure 0)
<*> (optional $ textFlag "context" "")
<*> (autoListFlag "," "values" "" <|> pure [])
main :: IO ()
main = parseSystemFlagsOrDie optionsParser >>= print