mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
gnu: elixir: Remove wrap for mix.
* gnu/packages/elixir.scm (elixir)[#:phases]: Instead of wrapping mix into shell script, which sets environment variables, we patch mix itself and set environmnet variables via elixir code. Change-Id: Ia4643e18fe927491242a0541938b7570bd56fca1 Co-authored-by: Ivan Sokolov <ivan-p-sokolov@ya.ru> Change-Id: I29d2c61299a8a54125f0e15190c526a860d501da
This commit is contained in:
parent
5d2302a195
commit
a903558577
1 changed files with 14 additions and 1 deletions
|
@ -7,6 +7,8 @@
|
|||
;;; Copyright © 2018 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee>
|
||||
;;; Copyright © 2021 Cees de Groot <cg@evrl.com>
|
||||
;;; Copyright © 2024 Andrew Tropin <andrew@trop.in>
|
||||
;;; Copyright © 2024 Ivan Sokolov <ivan-p-sokolov@ya.ru>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -101,7 +103,18 @@ (define-public elixir
|
|||
(add-after 'install 'wrap-programs
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(programs '("elixir" "elixirc" "iex" "mix")))
|
||||
(programs '("elixir" "elixirc" "iex")))
|
||||
;; mix can be sourced as an elixir script by other elixir
|
||||
;; program, for example `iex -S mix`, so we should not wrap
|
||||
;; mix into shell script.
|
||||
(substitute* (string-append out "/bin/mix")
|
||||
(("Mix.start\\(\\)") "\
|
||||
~w[GUIX_ELIXIR_LIBS ERL_LIBS]
|
||||
|> Enum.map(&System.get_env/1)
|
||||
|> Enum.reject(&is_nil/1)
|
||||
|> Enum.join(\":\")
|
||||
|> case do \"\" -> :ok; erl_libs -> System.put_env(\"ERL_LIBS\", erl_libs) end
|
||||
Mix.start()"))
|
||||
(for-each (lambda (program)
|
||||
(wrap-program (string-append out "/bin/" program)
|
||||
'("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
|
||||
|
|
Loading…
Reference in a new issue