{-|
Copyright:
This file is part of the package openid-connect. It is subject to
the license terms in the LICENSE file found in the top-level
directory of this distribution and at:
https://code.devalot.com/sthenauth/openid-connect
No part of this package, including this file, may be copied,
modified, propagated, or distributed except according to the terms
contained in the LICENSE file.
License: BSD-2-Clause
-}
module Main (main) where
--------------------------------------------------------------------------------
-- Imports:
import Auth
import Data.Function ((&))
import Discover
import Network.HTTP.Client.TLS (newTlsManager)
import qualified Network.Wai.Handler.Warp as Warp
import qualified Network.Wai.Handler.WarpTLS as Warp
import Options
--------------------------------------------------------------------------------
-- | Start the web server.
main :: IO ()
main = do
opts <- parseOptions
let settings = Warp.defaultSettings & Warp.setPort (optionsPort opts)
tls = Warp.tlsSettings (optionsCert opts) (optionsKey opts)
mgr <- newTlsManager
provider <- getProvider opts mgr
creds <- getCredentials opts mgr provider
putStrLn "Starting web server"
Warp.runTLS tls settings (app mgr provider creds)