{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE OverloadedStrings #-} module Main where import Data.String (fromString) import System.Environment (getArgs) import qualified Network.Wai.Handler.Warp as Warp import qualified Network.Wai as Wai import qualified Network.Wai.Application.Static as Static import Data.Maybe (fromJust) import Data.FileEmbed (embedDir) import WaiAppStatic.Types (toPieces) import Network.Wai.Middleware.Multilingual(rewriteByAcceptLanguage) main :: IO () main = do host:port:_ <- getArgs Warp.runSettings ( Warp.setHost (fromString host) $ Warp.setPort (read port) $ Warp.defaultSettings ) $ (rewriteByAcceptLanguage [ ([],["en","ja"]) ,(["index.htm"],["en","ja"]) ,(["sub","sub.htm"],["en","ja"]) ]) $ staticHttpApp staticHttpApp :: Wai.Application staticHttpApp = Static.staticApp $ settings { Static.ssIndices = indices } where settings = Static.embeddedSettings $(embedDir "static") -- embed contents as ByteString indices = fromJust $ toPieces ["index.htm"] -- default content