@hackage confide0.1.0.3

derive typeclass instances for decoding types from HOCON conf

confide

Build status

Confide port to Haskell (using GHC.Generics as opposed to Shapeless to generate FromConf typeclass instances). Uses deiko-config to parse HOCON .conf file and read in types

Usage

HOCON .conf file

a="hello"

b {
  y=true
  z {
    x=5
  }
}

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}

module Test where

import Data.Confide
import Data.Confide.Generic
import qualified Data.Text as T

data Foo = Foo {x :: Integer} deriving (Generic, Show)
data Bar = Bar {y :: Bool, z :: Foo} deriving (Generic, Show)
data Baz = Baz {a :: T.Text, b :: Bar} deriving (Generic, Show)

instance FromConf Foo
instance FromConf Bar
instance FromConf Baz

main :: IO ()
main = do
  c <- loadConfig "project/path/to/confFile.conf"
  baz <- get @Baz "" c
  print baz

GHCI

$ main 
Baz {a = "hello", b = Bar {y = True, z = Foo {x = 5}}}