BSD-3-Clause licensed by Dino Morelli
Maintained by Dino Morelli
This version can be pinned in stack with:tce-conf-1.3@sha256:8dcdcd680215bff83e2033f7cf1b1c9257ea63328b4e2e81479b3fa892e9763d,2316

Module documentation for 1.3

Used by 1 package in nightly-2024-11-29(full list with versions):

tce-conf

Synopsis

Very simple config file reading (Haskell)

Description

This package contains modules for runtime reading of very simple config files of the key=value style or as a Haskell data structure to be deserialized with Read. The modules support files with blank lines and simple single-line comments, but nothing else.

KVConf

Pros

  • Well-known key=value config file syntax
  • Adding new entries doesn’t necessarily mean code changes as they are stored in a Map

Cons

  • All values are String and so may as well be untyped. Conversion to other types will be required by users of the library.
  • Simulating hierarchies requires hacky key syntax with dots or what-have-you
  • Only single-line comments supported at this time, with #
  • No support for INI sections or variable substitution

ReadConf

Pros

  • Config files are strongly typed Haskell source code. Read instancing takes care of everything!
  • Can easily support hierarchical data because Haskell data types do so

Cons

  • Config files must adhere to Haskell source syntax (may not be a con for some)
  • Changing the config file at all requires code changes to keep the types synced with each other.
  • Only single-line comments supported at this time, with –
  • No support for variable substitution

Getting source

  • Get the source with darcs: $ darcs get http://hub.darcs.net/dino/tce-conf
  • If you’re just looking, browse the source

And once you have it, building the usual way:

$ stack build
$ stack test

Contact

Dino Morelli <[email protected]>

Changes

1.3 (2016-10-10)

  • Added missing files to extra-source-files

1.2 (2016-10-09)

  • Fixed cabal file for use with stack sdist
  • Fixed cabal file formatting
  • Updated cabal-version in cabal file
  • Replaced fmap with <$> everywhere
  • Updated build instructions to be stack-specific
  • Cleaned up auto-generated cruft in stack.yaml
  • Merged example sub-project into the main project
  • Moved tested-with up to ghc 8.0.1
  • Moved copyright up to 2016
  • Changed build from cabal to stack
  • Updated README

1.1 (2015-03-27)

  • Updated and expanded documentation
  • Added buildable example project
  • Added ReadConf module
  • Renamed SimpleConf to KVConf
  • KVConf: Can now have whitespace around the = symbol in conf files

1.0 (2015-03-23)

  • Initial release