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