-- SPDX-FileCopyrightText: 2024 UniWorX Systems -- SPDX-FileContributor: David Mosbach -- -- SPDX-License-Identifier: AGPL-3.0-or-later {-# Language TypeApplications #-} module Main (main) where import UniWorX import Server import SSO (CustomRoutes, customRoutes) import Control.Applicative ((<|>)) import Database.Persist (Entity(..)) import System.Environment (lookupEnv) import qualified Data.Map as M import qualified Data.Text as T main :: IO () main = do port <- determinePort putStrLn $ "Try: http://localhost:" ++ show port ++ "/auth?scope=ID%20Profile&client_id=42&response_type=code&redirect_uri=http:%2F%2Flocalhost:0000%2F" initDB runMockServerWithRoutes @(Entity User) @(M.Map T.Text T.Text) @CustomRoutes port customRoutes where determinePort :: IO Int determinePort = do Just port <- lookupEnv "OAUTH2_SERVER_PORT" >>= \p -> return $ p <|> Just "9443" return $ read @Int port