gnu: Add ghc-hindent.

* gnu/packages/haskell.scm (ghc-hindent): New variable.
This commit is contained in:
Brian Leung 2019-06-22 23:47:32 +02:00 committed by Timothy Sample
parent 697cae2a67
commit 64b7c06e18
No known key found for this signature in database
GPG Key ID: 2AC6A5EC1C357C59
1 changed files with 60 additions and 0 deletions

View File

@ -42,6 +42,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages elf)
#:use-module (gnu packages emacs)
#:use-module (gnu packages gcc)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
@ -11727,6 +11728,65 @@ recursive scanning and copying of directories, working with temporary
files/directories, and more.")
(license license:bsd-3)))
(define-public ghc-hindent
(package
(name "ghc-hindent")
(version "5.3.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://hackage.haskell.org/package/hindent/hindent-"
version
".tar.gz"))
(sha256
(base32
"0wkfik7mvqskk23kyh7ybgnlh3j9j1ym7d3ncahsbli9w654b7xg"))))
(build-system haskell-build-system)
(arguments
`(#:modules ((guix build haskell-build-system)
(guix build utils)
(guix build emacs-utils))
#:imported-modules (,@%haskell-build-system-modules
(guix build emacs-utils))
#:phases
(modify-phases %standard-phases
(add-after 'install 'emacs-install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(elisp-file "elisp/hindent.el")
(dest (string-append out "/share/emacs/site-lisp"
"/guix.d/hindent-" ,version))
(emacs (string-append (assoc-ref inputs "emacs")
"/bin/emacs")))
(make-file-writable elisp-file)
(emacs-substitute-variables elisp-file
("hindent-process-path"
(string-append out "/bin/hindent")))
(install-file elisp-file dest)
(emacs-generate-autoloads "hindent" dest)))))))
(inputs
`(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
("ghc-monad-loops" ,ghc-monad-loops)
("ghc-utf8-string" ,ghc-utf8-string)
("ghc-exceptions" ,ghc-exceptions)
("ghc-yaml" ,ghc-yaml)
("ghc-unix-compat" ,ghc-unix-compat)
("ghc-path" ,ghc-path)
("ghc-path-io" ,ghc-path-io)
("ghc-optparse-applicative" ,ghc-optparse-applicative)))
(native-inputs
`(("ghc-hspec" ,ghc-hspec)
("ghc-diff" ,ghc-diff)
("emacs" ,emacs-minimal)))
(home-page
"https://github.com/commercialhaskell/hindent")
(synopsis "Extensible Haskell pretty printer")
(description
"This package provides automatic formatting for Haskell files. Both a
library and an executable.")
(license license:bsd-3)))
(define-public ghc-descriptive
(package
(name "ghc-descriptive")