module Web.Groonga.App where

import Web.Groonga.Server
import Web.Scotty (scotty)
import Options.Applicative

data Config = Config
  { port   :: Int
  , dbpath :: String }

config :: Parser Config
config = Config
     <$> option auto
         ( long "port"
        <> metavar "NUMBER"
        <> value 3000
        <> help "Specify port number [default: 3000]" )
     <*> strOption
         ( long "dbpath"
        <> metavar "DBPATH"
        <> help "Specify database path" )

server :: Config -> IO ()
server (Config port dbpath) = do
  db dbpath
  scotty port $ app dbpath

defaultMain :: IO ()
defaultMain = do
  execParser opts >>= server
  where
    opts = info (helper <*> config)
           ( fullDesc
             <> progDesc "haroonga http server."
             <> header "Haroonga http server" )