From d9559b582a3739d5967a18b7d1d0e08ae57196aa Mon Sep 17 00:00:00 2001 From: staticvoid Date: Tue, 12 Jul 2022 18:29:48 +0300 Subject: [PATCH] 4r-feed: add 4RUM_BASE_URL env var --- 4r-feed/Feed/V1/Server.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/4r-feed/Feed/V1/Server.hs b/4r-feed/Feed/V1/Server.hs index fd044d0..effc995 100644 --- a/4r-feed/Feed/V1/Server.hs +++ b/4r-feed/Feed/V1/Server.hs @@ -5,6 +5,7 @@ import Relude.Extra.Tuple (fmapToSnd) import Api.V1.Types import Data.Cache (newCache) +import Data.List (isSuffixOf) import Feed.V1.Core (App) import Feed.V1.Section (feedSectionCached) import Feed.V1.Spec (FeedApi, feedApi) @@ -36,13 +37,16 @@ mkServer = do Just (secRaw, Left e) -> fail $ "Failed to parse " <> cacheVarName <> "=" <> secRaw <> ": " <> toString e cache <- newCache $ Just TimeSpec{nsec = 0, sec} + baseUrl <- lookupEnv "4RUM_BASE_URL" >>= maybe (pure (BaseUrl Http "4rum.i2p" 80 "")) parseBaseUrl clientEnv <- do manager' <- liftIO $ Http.newManager $ Http.defaultManagerSettings - & (Http.managerSetProxy $ Http.proxyEnvironmentNamed "I2P_HTTP_PROXY" $ Just defProxy) - pure $ mkClientEnv manager' (BaseUrl Http "4rum.i2p" 80 "") + & if ".i2p" `isSuffixOf` baseUrl.baseUrlHost + then Http.managerSetProxy $ Http.proxyEnvironmentNamed "I2P_HTTP_PROXY" $ Just defProxy + else id + pure $ mkClientEnv manager' baseUrl let interpreter :: App a -> Handler a interpreter =