minimal-configuration

Minimal ini like configuration library with a few extras

Stackage Nightly 2019-12-13:0.1.4
Latest on Hackage:0.1.4

See all snapshots minimal-configuration appears in

LicenseRef-OtherLicense licensed by Marius Ghita
Maintained by mhitza@gmail.com

Module documentation for 0.1.4

This version can be pinned in stack with:minimal-configuration-0.1.4@sha256:d9c641e50292691c315411c61a53dd39924c7504e530ff5b9d59e71704dcd600,1808

The module exported provides the ability to manage a configuration file in the users home directory (or the Windows equivalent). Where the configuration takes the form of key=value, without sections, that for example an '.ini' would have.

The library simplifies serilization/deserialization of the configuration into a structure similar in behavior to a Map, as well as an interactive way to fill in values for simple cases.

Consider the following example, where a user would run the application for the first time, it would ask him for his name; however on a followup run it would just print a greeting with his name.

import System.Config.File

main = loadLocal ".apprc" >>= \conf -> do
    let name = getV conf "name"
    case name of Just n  -> putStrLn $ "hello " ++ n
                 Nothing -> do conf' <- fillInteractively conf [("name", acceptNonBlank)]
                               saveConfiguration conf'
comments powered byDisqus