all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#68964] [PATCH] gnu: elixir: Remove wrap for mix.
@ 2024-02-07  6:39 Andrew Tropin via Guix-patches via
  2024-02-07  8:13 ` [bug#68964] [PATCH v2] " Andrew Tropin via Guix-patches via
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Tropin via Guix-patches via @ 2024-02-07  6:39 UTC (permalink / raw)
  To: 68964; +Cc: Pierre-Henry Fröhring, Liliana Marie Prikler, Andrew Tropin

* 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
---
 gnu/packages/elixir.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index ef8c39d0d7..70a8fad5e8 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -101,7 +101,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}"))))

base-commit: cce7a6d2d2b18f51d1fcab67b02a38c11d6f4f2d
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-02-08  9:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-07  6:39 [bug#68964] [PATCH] gnu: elixir: Remove wrap for mix Andrew Tropin via Guix-patches via
2024-02-07  8:13 ` [bug#68964] [PATCH v2] " Andrew Tropin via Guix-patches via
2024-02-07 18:22   ` Liliana Marie Prikler
2024-02-08  9:39     ` bug#68964: " Andrew Tropin via Guix-patches via

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.