salak-0.1.7: src/Data/Salak/Yaml.hs
module Data.Salak.Yaml where
import Control.Monad.IO.Class
import Control.Monad.State
import Data.Salak.Aeson
import Data.Salak.Types
import Data.Yaml
-- | Load `Properties` from `Yaml` file.
makePropertiesFromYaml :: FilePath -> Properties -> IO Properties
makePropertiesFromYaml file p = do
v <- decodeFileThrow file
return $ makePropertiesFromJson v p
-- | Load Properties from Yaml
--
-- @since 0.2.2
loadYaml :: MonadIO m => FilePath -> LoadProperties m ()
loadYaml file = do
p <- get
q <- liftIO $ makePropertiesFromYaml file p
put q
-- | Load Properties from Yaml if exists
--
-- @since 0.2.2
loadYamlIfExists :: MonadIO m => Maybe FilePath -> LoadProperties m ()
loadYamlIfExists mf = loadIfExists mf loadYaml