{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} module Main where import Web.Scotty import Network.Wai.Middleware.Static import Network.Wai.Middleware.RequestLogger import Control.Monad.IO.Class import Data.Text.Lazy (pack) import System.Environment (getEnv) import Control.Exception (catch) import qualified Routes main :: IO () main = do port <- read <$> getEnv "PORT" `catch` \(_ :: IOError) -> return "3000" putStrLn $ "Starting server on port " ++ show port scotty port $ do middleware logStdoutDev middleware $ staticPolicy (addBase "static") -- Routes get "/" $ Routes.indexHandler get "/api/command/:cmd" $ Routes.commandHandler get "/api/language/:lang" $ Routes.languageHandler