aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--src/Config.hs2
-rw-r--r--src/Main.hs25
3 files changed, 16 insertions, 12 deletions
diff --git a/README.md b/README.md
index f2b1103..b37e6b6 100644
--- a/README.md
+++ b/README.md
@@ -19,6 +19,7 @@ If you go with environment variables, the following options are available:
- PORT: port to bind to. Default: 20546
- BIND\_ADDR: address to bind to. Default: any ipv4/ipv6 interface
- BASE\_URL: url of the deployed website, without trailing slash. Default: "http://localhost:20546"
+- DB\_PATH: path to the sqlite database used for storing bangs. Default: "banger.db"
- ADMIN\_USER: username for logging into the interface for accepting/rejecting bangs. Default: "bleb"
- ADMIN\_PW\_HASH: hash of the passwort used for logging in. Default: ""
- EMAIL\_CMD: path to an executable for sending emails. Will be called with the recipient, subject and body as command-line arguments. Default: ""
diff --git a/src/Config.hs b/src/Config.hs
index 6ffb1fd..12fc09d 100644
--- a/src/Config.hs
+++ b/src/Config.hs
@@ -28,6 +28,7 @@ data Config = Config {
confHost :: HostPreference,
confBaseUrl :: Text,
confFavicon :: Text,
+ confDbPath :: Text,
confUser :: Text,
confPwHash :: Text,
confEmailCmd :: Maybe FilePath,
@@ -45,6 +46,7 @@ getConfig = do
<*> resolveVal (lookup "bind-addr" confFile) "BIND_ADDR" "*6"
<*> resolveVal (lookup "base-url" confFile) "BASE_URL" "http://localhost:20546"
<*> resolveVal (lookup "favicon-url" confFile) "FAVICON_URL" ""
+ <*> resolveVal (lookup "db-path" confFile) "DB_PATH" "banger.db"
<*> resolveVal (lookup "admin-user" confFile) "ADMIN_USER" "bleb"
<*> resolveVal (lookup "admin-pw-hash" confFile) "ADMIN_PW_HASH" "" -- prevent login without manual pw
<*> fmap (<|> lookup "email-command" confFile) (lookupEnv "EMAIL_CMD")
diff --git a/src/Main.hs b/src/Main.hs
index d69ced6..095cdbe 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -150,20 +150,21 @@ sendPendingBangs cfg pool = do
"Please do something about it.\n"
main :: IO ()
-main = runStdoutLoggingT $ withSqlitePool "banger.db" 2 $ \pool -> do
- runResourceT $ flip runSqlPool pool $ runMigration migrateAll
+main = do
+ cfg <- getConfig
+ runStdoutLoggingT $ withSqlitePool (confDbPath cfg) 2 $ \pool -> do
+ runResourceT $ flip runSqlPool pool $ runMigration migrateAll
- bs <- liftIO initBangState
- cfg <- liftIO getConfig
- $(logInfo) $ "Using config: " <> T.pack (show cfg)
+ bs <- liftIO initBangState
+ $(logInfo) $ "Using config: " <> T.pack (show cfg)
- sendPbIO <- toIO $ sendPendingBangs cfg pool
- notifyPb <- liftIO $ makeRunner sendPbIO 600000000 {- 10 min -}
+ sendPbIO <- toIO $ sendPendingBangs cfg pool
+ notifyPb <- liftIO $ makeRunner sendPbIO 600000000 {- 10 min -}
- sApp <- liftIO $ toWaiApp $ Search bs pool cfg notifyPb -- includes middlewares
+ sApp <- liftIO $ toWaiApp $ Search bs pool cfg notifyPb -- includes middlewares
- let settings = defaultSettings
- & setHost (confHost cfg)
- & setPort (confPort cfg)
+ let settings = defaultSettings
+ & setHost (confHost cfg)
+ & setPort (confPort cfg)
- liftIO $ runSettings settings sApp
+ liftIO $ runSettings settings sApp