aboutsummaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs20
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