4r-feed: add 4RUM_BASE_URL env var

main
staticvoid 2022-07-12 18:29:48 +03:00
parent a02bf265ae
commit d9559b582a
1 changed files with 6 additions and 2 deletions

View File

@ -5,6 +5,7 @@ import Relude.Extra.Tuple (fmapToSnd)
import Api.V1.Types import Api.V1.Types
import Data.Cache (newCache) import Data.Cache (newCache)
import Data.List (isSuffixOf)
import Feed.V1.Core (App) import Feed.V1.Core (App)
import Feed.V1.Section (feedSectionCached) import Feed.V1.Section (feedSectionCached)
import Feed.V1.Spec (FeedApi, feedApi) import Feed.V1.Spec (FeedApi, feedApi)
@ -36,13 +37,16 @@ mkServer = do
Just (secRaw, Left e) -> fail $ "Failed to parse " <> cacheVarName <> "=" <> secRaw <> ": " <> toString e Just (secRaw, Left e) -> fail $ "Failed to parse " <> cacheVarName <> "=" <> secRaw <> ": " <> toString e
cache <- newCache $ Just TimeSpec{nsec = 0, sec} cache <- newCache $ Just TimeSpec{nsec = 0, sec}
baseUrl <- lookupEnv "4RUM_BASE_URL" >>= maybe (pure (BaseUrl Http "4rum.i2p" 80 "")) parseBaseUrl
clientEnv <- do clientEnv <- do
manager' <- manager' <-
liftIO $ liftIO $
Http.newManager $ Http.newManager $
Http.defaultManagerSettings Http.defaultManagerSettings
& (Http.managerSetProxy $ Http.proxyEnvironmentNamed "I2P_HTTP_PROXY" $ Just defProxy) & if ".i2p" `isSuffixOf` baseUrl.baseUrlHost
pure $ mkClientEnv manager' (BaseUrl Http "4rum.i2p" 80 "") then Http.managerSetProxy $ Http.proxyEnvironmentNamed "I2P_HTTP_PROXY" $ Just defProxy
else id
pure $ mkClientEnv manager' baseUrl
let interpreter :: App a -> Handler a let interpreter :: App a -> Handler a
interpreter = interpreter =