diff options
author | Lia Lenckowski <lialenck@protonmail.com> | 2023-08-20 20:25:32 +0200 |
---|---|---|
committer | Lia Lenckowski <lialenck@protonmail.com> | 2023-08-20 20:25:56 +0200 |
commit | 28290ac9e4aaed9a605bfec734818c28dd4ff51a (patch) | |
tree | 1edace370532a99b541918baef6edf1d4683e74b /src/Config.hs | |
parent | 621a91776a6512fc23664e8b2e7ab796ed9ffcd5 (diff) | |
download | fastbangs-28290ac9e4aaed9a605bfec734818c28dd4ff51a.tar fastbangs-28290ac9e4aaed9a605bfec734818c28dd4ff51a.tar.bz2 fastbangs-28290ac9e4aaed9a605bfec734818c28dd4ff51a.tar.zst |
make admin user/password configurable with env vars instead of recompilation
Diffstat (limited to 'src/Config.hs')
-rw-r--r-- | src/Config.hs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/Config.hs b/src/Config.hs index b0c7670..d494477 100644 --- a/src/Config.hs +++ b/src/Config.hs @@ -7,7 +7,7 @@ module Config ( ) where import Data.Maybe (fromMaybe) -import Data.String (fromString) +import Data.String (fromString, IsString) import Data.Text (Text) import Network.Wai.Handler.Warp (HostPreference) import System.Environment (lookupEnv) @@ -16,17 +16,21 @@ data Config = Config { confPort :: Int, confHost :: HostPreference, confBaseUrl :: Text, - confFavicon :: Text + confFavicon :: Text, + confUser :: Text, + confPwHash :: Text } deriving (Show, Eq) getConfig :: IO Config -getConfig = do - port <- (read . fromMaybe "20546") <$> lookupEnv "PORT" - host <- (fromString . fromMaybe "*6") <$> lookupEnv "BIND_ADDR" - baseUrl <- (fromString . fromMaybe "http://localhost:20546") <$> lookupEnv "BASE_URL" - favicon <- (fromString . fromMaybe "https://69owo.de/favicon.ico") <$> lookupEnv "FAVICON_URL" - - return $ Config port host baseUrl favicon +getConfig = Config + <$> (read <$> getEnvOr "PORT" "20546") + <*> getEnvOr "BIND_ADDR" "*6" + <*> getEnvOr "BASE_URL" "http://localhost:20546" + <*> getEnvOr "FAVICON_URL" "https://69owo.de/favicon.ico" + <*> getEnvOr "ADMIN_USER" "bleb" + <*> getEnvOr "ADMIN_PW_HASH" "" -- prevent login without manual pw + where getEnvOr :: IsString s => String -> s -> IO s + getEnvOr q def = fromMaybe def . fmap fromString <$> lookupEnv q makeOpenSearch :: Config -> Maybe Text -> Text makeOpenSearch cfg defBang = |