module Helper ( forceGetConfig , getConfig , eitherToMaybe ) where import System.IO (hClose) import System.IO.Temp (withSystemTempFile) import System.Directory (removeFile) import Data.Text (Text) import qualified Data.Text.IO as T import Data.Maybe (fromJust) import Data.ConfigManager import Data.ConfigManager.Types (Config) forceGetConfig :: Text -> IO Config forceGetConfig = (fmap fromJust) . getConfig getConfig :: Text -> IO (Maybe Config) getConfig input = withSystemTempFile "config-manager-test" (\filePath handle -> do hClose handle T.writeFile filePath input config <- readConfig filePath removeFile filePath return $ eitherToMaybe config ) eitherToMaybe :: Either a b -> Maybe b eitherToMaybe (Left _) = Nothing eitherToMaybe (Right x) = Just x