gnu: Add elixir-hex.

* gnu/packages/elixir.scm (elixir-hex): New variable.

Change-Id: I957688ae4e078afd79acd439880c38083fdab83a
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Pierre-Henry Fröhring 2023-12-10 14:03:56 +01:00 committed by Liliana Marie Prikler
parent c2ed5a7d13
commit 612f8afac1
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -118,3 +118,48 @@ (define-public elixir
for running low-latency, distributed and fault-tolerant systems, while also
being successfully used in web development and the embedded software domain.")
(license license:asl2.0)))
(define-public elixir-hex
(package
(name "elixir-hex")
(version "2.0.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hexpm/hex.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj"))))
;; The mix-build-system assumes that Hex exists.
;; We build Hex using the gnu-build-system.
;; Other Elixir packages use the mix-build-system.
(build-system gnu-build-system)
(inputs (list elixir))
(arguments
(list
;; Hex is needed to build packages used to test Hex.
;; To avoid this circularity, we disable tests.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "MIX_ENV" "prod")
(invoke "mix" "compile")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(define X.Y #$(version-major+minor (package-version elixir)))
(define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex"))
(mkdir-p out)
(copy-recursively "_build/prod/lib/hex" out))))))
(synopsis "Package manager for the Erlang VM")
(description
"This project provides tasks that integrate with Mix, Elixir's build
tool.")
(home-page "https://hexdocs.pm/makeup_elixir/")
(license license:bsd-2)))