diff options
author | defanor <defanor@uberspace.net> | 2017-12-19 02:43:21 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2017-12-19 02:43:21 +0300 |
commit | 7f5d0b170099704d1a2016e2af1d9bfbde7ea1ad (patch) | |
tree | 33a28920e6d60e73e154c8185e7318c473ec01d4 /Pancake/Configuration.hs | |
parent | 6e368bc36c603a23e57a5baa14556446a8603a8e (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.hs | 13 |
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 |