Description
Minimal ini like configuration library with a few extras.
Description
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'