31 lines
872 B
Haskell
31 lines
872 B
Haskell
module Main (main) where
|
|
|
|
import Server
|
|
|
|
import Control.Applicative ((<|>))
|
|
|
|
import qualified Data.Map as M
|
|
|
|
import System.Environment (getArgs)
|
|
|
|
main :: IO ()
|
|
main = do
|
|
args <- getArgs >>= flip buildArgs M.empty
|
|
port <- determinePort args
|
|
putStrLn $ "Try: http://localhost:" ++ show port ++ "/auth?scope=ID%20Profile&client_id=42&response_type=code&redirect_uri=localhost"
|
|
runMockServer port
|
|
where
|
|
buildArgs :: [String] -> M.Map String String -> IO (M.Map String String)
|
|
buildArgs [] m = return m
|
|
buildArgs (k:v:xs) m = return (M.insert k v m) >>= buildArgs xs
|
|
buildArgs _ _ = error "invalid command line args"
|
|
|
|
determinePort :: M.Map String String -> IO Int
|
|
determinePort args = do
|
|
case M.lookup "-p" args <|> M.lookup "--port" args of
|
|
Just port -> return $ read port
|
|
Nothing -> return 9443
|
|
|
|
|
|
|