From 04d711788369c8d370fdce487263a349d0457442 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= <mordae@anilinux.org>
Date: Sun, 27 Sep 2020 17:34:32 +0200
Subject: [PATCH] Add shortcuts to read Config outside of Action
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Jan Hamal Dvořák <mordae@anilinux.org>
---
 lib/Hikaru/Config.hs | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/lib/Hikaru/Config.hs b/lib/Hikaru/Config.hs
index a26da53..78c655d 100644
--- a/lib/Hikaru/Config.hs
+++ b/lib/Hikaru/Config.hs
@@ -26,6 +26,10 @@ module Hikaru.Config
   , configFromFile
   , configDefault
 
+  -- * Reading Config
+  , configGetMaybe
+  , configGetDefault
+
   -- * Secrets
   , generateSecret
   )
@@ -38,6 +42,7 @@ where
   import Data.ByteArray.Encoding
   import Data.String.Conversions
   import Data.Text hiding (map)
+  import Hikaru.Types
   import System.Environment
 
 
@@ -102,6 +107,20 @@ where
                           ]
 
 
+  -- |
+  -- Try to obtain value of a configuration key.
+  --
+  configGetMaybe :: (Param a) => Text -> Config -> Maybe a
+  configGetMaybe name cfg = fromParam =<< Map.lookup name cfg
+
+
+  -- |
+  -- Obtain value of a configuration key or the provided default.
+  --
+  configGetDefault :: (Param a) => Text -> a -> Config -> a
+  configGetDefault name value = fromMaybe value . configGetMaybe name
+
+
   -- |
   -- Generate a random base64-encoded secret of given length
   -- (in decoded bytes).
-- 
GitLab