summaryrefslogtreecommitdiff
path: root/Pancake/Configuration.hs
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2017-12-19 02:43:21 +0300
committerdefanor <defanor@uberspace.net>2017-12-19 02:43:21 +0300
commit7f5d0b170099704d1a2016e2af1d9bfbde7ea1ad (patch)
tree33a28920e6d60e73e154c8185e7318c473ec01d4 /Pancake/Configuration.hs
parent6e368bc36c603a23e57a5baa14556446a8603a8e (diff)
Enable a user to specify a configuration file
This covers both command-line options and the "load config" (former "reload config") command.
Diffstat (limited to 'Pancake/Configuration.hs')
-rw-r--r--Pancake/Configuration.hs13
1 files changed, 8 insertions, 5 deletions
diff --git a/Pancake/Configuration.hs b/Pancake/Configuration.hs
index ae42f65..772725e 100644
--- a/Pancake/Configuration.hs
+++ b/Pancake/Configuration.hs
@@ -116,11 +116,14 @@ instance Default Config where
"-w \"\n-pancake-\nuri: %{url_effective}\ntype: %{content_type}\n\" "
-- | Loads configuration from an XDG config directory.
-loadConfig :: MonadIO m => m Config
-loadConfig = liftIO $ do
- dir <- getXdgDirectory XdgConfig "pancake"
- createDirectoryIfMissing True dir
- let configPath = dir </> "config.yaml"
+loadConfig :: MonadIO m => Maybe FilePath -> m Config
+loadConfig mp = liftIO $ do
+ configPath <- case mp of
+ Nothing -> do
+ dir <- getXdgDirectory XdgConfig "pancake"
+ createDirectoryIfMissing True dir
+ pure $ dir </> "config.yaml"
+ Just p -> pure p
exists <- doesFileExist configPath
if exists
then do