Popularity
8.5
Growing
Activity
0.0
Stable
22
16
5

Monthly Downloads: 173
Programming language: Haskell
License: MIT License
Tags: Configuration    
Latest version: v0.4.0

yaml-config alternatives and similar packages

Based on the "Configuration" category

Do you think we are missing an alternative of yaml-config or a related project?

Add another 'Configuration' Package

README

yaml-config Build Status

Load, parse and find fields in YAML config files.

Example

YAML config

server:
    port: 8080
    logs:
        access: /var/log/server/access.log
        error:  /var/log/server/error.log

Haskell source

{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-}

module Main where
import Prelude hiding (lookup)
import Data.Word (Word16)
import Data.Yaml.Config (load, subconfig, lookupDefault, lookup)

main :: IO ()
main = do
    config <- load "./example.yaml"

    serverConfig <- subconfig "server" config
    let interface = lookupDefault "interface" "127.0.0.1" serverConfig
        port :: Word16 = lookupDefault "port" 80 serverConfig

    logConfig <- subconfig "logs" serverConfig
    accessLog <- lookup "access" logConfig
    errorLog <- lookup "error" logConfig

    mapM_ putStrLn [interface, (show port), errorLog, accessLog]

Result

$ ./server
127.0.0.1
8080
/var/log/server/error.log
/var/log/server/access.log

Hackage