From 6eb4dcd414e220ca95e4442a1a21cd448e8035ce Mon Sep 17 00:00:00 2001 From: Lia Lenckowski Date: Tue, 25 Jul 2023 20:59:19 +0200 Subject: make some settings configurable through environment variables --- src/Config.hs | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) (limited to 'src/Config.hs') diff --git a/src/Config.hs b/src/Config.hs index d19e608..da9206a 100644 --- a/src/Config.hs +++ b/src/Config.hs @@ -1,27 +1,41 @@ {-# LANGUAGE OverloadedStrings #-} module Config ( - baseUrl, + getPort, + getHost, + getBaseUrl, makeOpenSearch ) where -import Data.String (IsString) +import Data.Maybe (fromMaybe) +import Data.String (fromString, IsString) +import Network.Wai.Handler.Warp (HostPreference) +import System.Environment (lookupEnv) -baseUrl :: IsString s => s -baseUrl = "http://localhost:20546" +getPort :: IO Int +getPort = (read . fromMaybe "20546") <$> lookupEnv "PORT" -faviconUrl :: IsString s => s -faviconUrl = "https://69owo.de/favicon.ico" +-- currently, "*" seems to bind only to ipv4 while "*6" binds to both +getHost :: IO HostPreference +getHost = (fromString . fromMaybe "*6") <$> lookupEnv "BIND_ADDR" -makeOpenSearch :: (IsString s, Semigroup s) => s -> s -makeOpenSearch searchUrl = - " " xmlns:moz=\"http://www.mozilla.org/2006/browser/search/\">\n" - <> " Banger\n" - <> " Bangs von ddg, ohne ddg\n" - <> " UTF-8\n" - <> " " <> faviconUrl <> "\n" - <> " searchUrl <> "\"/>\n" - <> " \n" - <> " \n" - <> "\n" +getBaseUrl :: IsString s => IO s +getBaseUrl = (fromString . fromMaybe "http://localhost:20546") <$> lookupEnv "BASE_URL" + +faviconUrl :: IsString s => IO s +faviconUrl = (fromString . fromMaybe "https://69owo.de/favicon.ico") + <$> lookupEnv "FAVICON_URL" + +makeOpenSearch :: (IsString s, Semigroup s) => s -> IO s +makeOpenSearch searchUrl = do + favicon <- faviconUrl + return $ " " xmlns:moz=\"http://www.mozilla.org/2006/browser/search/\">\n" + <> " Banger\n" + <> " Bangs von ddg, ohne ddg\n" + <> " UTF-8\n" + <> " " <> favicon <> "\n" + <> " searchUrl <> "\"/>\n" + <> " \n" + <> " \n" + <> "\n" -- cgit v1.2.3-70-g09d2