summaryrefslogtreecommitdiff
path: root/gnu/packages/haskell-xyz.scm
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2021-07-03 17:22:09 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2021-07-04 16:29:14 +0200
commitefbe2667561ffa9829359457709300850692d5d2 (patch)
treed87b45a42aef366e2bfac312f764d05f6bdd6d0b /gnu/packages/haskell-xyz.scm
parentd9c400905682e74d1ce61c50a5bae7268df01a7f (diff)
downloadguix-patches-efbe2667561ffa9829359457709300850692d5d2.tar
guix-patches-efbe2667561ffa9829359457709300850692d5d2.tar.gz
gnu: Add ghc-config-ini.
* gnu/packages/haskell-xyz.scm (ghc-config-ini): New public variable.
Diffstat (limited to 'gnu/packages/haskell-xyz.scm')
-rw-r--r--gnu/packages/haskell-xyz.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 898cd9b78a..f1d2b3b94d 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -2592,6 +2592,44 @@ a very thin wrapper around the
interface}.")
(license license:expat)))
+(define-public ghc-config-ini
+ (package
+ (name "ghc-config-ini")
+ (version "0.2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "config-ini/config-ini-" version ".tar.gz"))
+ (sha256
+ (base32 "0dfm4xb1sd713rcqzplzdgw68fyhj24i6lj8j3q8kldpmkl98lbf"))))
+ (build-system haskell-build-system)
+ (arguments
+ ;; XXX The tests fail to compile: “The constructor ‘I1.Ini’ should have 2
+ ;; arguments, but has been given 1”.
+ `(#:tests? #f
+ #:cabal-revision
+ ("2" "0iwraaa0y1b3xdsg760j1wpylkqshky0k2djcg0k4s97lrwqpbcz")))
+ (native-inputs
+ `(("ghc-doctest" ,ghc-doctest)
+ ("ghc-hedgehog" ,ghc-hedgehog)
+ ("ghc-ini" ,ghc-ini)
+ ("ghc-microlens" ,ghc-microlens)))
+ (inputs
+ `(("ghc-megaparsec" ,ghc-megaparsec)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)))
+ (home-page "https://github.com/aisamanra/config-ini")
+ (synopsis "Monadic Haskell DSL for parsing simple INI configuration files")
+ (description
+ "The @code{config-ini} Haskell library exports some simple monadic
+functions to ease the parsing of @file{.ini}-style configuration files, and
+to write and update them in an efficient @i{diff-minimal} way. This means that
+if you parse a file, update a single field, and reserialize, that file should
+differ only in the field we changed and @emph{that's it}: field order, comments,
+and incidental whitespace will remain unchanged. The library aims to produce
+human-readable error messages when things go wrong.")
+ (license license:bsd-3)))
+
(define-public ghc-configurator
(package
(name "ghc-configurator")