diff options
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/Main.hs b/src/Main.hs index 5ab2322..2599df5 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -4,7 +4,7 @@ module Main (main) where import Yesod -import Network.Wai.Handler.Warp +import Network.Wai.Handler.Warp hiding (getPort, getHost) import Data.Function ((&)) import Data.Functor ((<&>)) @@ -52,23 +52,25 @@ postSubmitR = return "TODO" getOpenSearchR :: Handler TypedContent getOpenSearchR = do + baseUrl <- liftIO getBaseUrl url <- lookupGetParam "default" <&> \case Nothing -> baseUrl <> "/#{searchTerms}" Just b -> baseUrl <> "/#" <> b <> "#{searchTerms}" - return - $ TypedContent "application/opensearchdescription+xml" - $ toContent - $ makeOpenSearch url + liftIO $ + TypedContent "application/opensearchdescription+xml" + . toContent + <$> makeOpenSearch url main :: IO () main = do s <- Search <$> initBangState - sApp <- toWaiApp s -- includes middlewares + + host <- getHost + port <- getPort let settings = defaultSettings - -- currently, "*" seems to bind only to ipv4 while "*6" binds to both - & setHost "*6" - & setPort 20546 + & setHost host + & setPort port runSettings settings sApp |