about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/beam-modules/mix-release.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-09-16 08:50:56 +0000
committerAlyssa Ross <hi@alyssa.is>2023-09-16 08:50:56 +0000
commitc51a27c0e7727fcd2be7d2d7d275f365ab1235be (patch)
treec6f917179329e0cad02bf8b818569fe6e905ab13 /nixpkgs/pkgs/development/beam-modules/mix-release.nix
parent9d1daa60832979d5d361dfdac136fb9e5a1af2c5 (diff)
parentace5093e36ab1e95cb9463863491bee90d5a4183 (diff)
downloadnixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.tar
nixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.tar.gz
nixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.tar.bz2
nixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.tar.lz
nixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.tar.xz
nixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.tar.zst
nixlib-c51a27c0e7727fcd2be7d2d7d275f365ab1235be.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/development/beam-modules/mix-release.nix')
-rw-r--r--nixpkgs/pkgs/development/beam-modules/mix-release.nix21
1 files changed, 21 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/beam-modules/mix-release.nix b/nixpkgs/pkgs/development/beam-modules/mix-release.nix
index 0f070cce7ad3..d48dc38a4b8d 100644
--- a/nixpkgs/pkgs/development/beam-modules/mix-release.nix
+++ b/nixpkgs/pkgs/development/beam-modules/mix-release.nix
@@ -81,6 +81,27 @@ stdenv.mkDerivation (overridable // {
     # Phoenix projects for example will need compile.phoenix
     mix deps.compile --no-deps-check --skip-umbrella-children
 
+    # Symlink dependency sources. This is needed for projects that require
+    # access to the source of their dependencies. For example, Phoenix
+    # applications need javascript assets to build asset bundles.
+    ${lib.optionalString (mixNixDeps != { }) ''
+      mkdir -p deps
+
+      ${lib.concatMapStringsSep "\n" (dep: ''
+        dep_name=$(basename ${dep} | cut -d '-' -f2)
+        dep_path="deps/$dep_name"
+        if [ -d "${dep}/src" ]; then
+          ln -s ${dep}/src $dep_path
+        fi
+      '') (builtins.attrValues mixNixDeps)}
+    ''}
+
+    # Symlink deps to build root. Similar to above, but allows for mixFodDeps
+    # Phoenix projects to find javascript assets.
+    ${lib.optionalString (mixFodDeps != null) ''
+      ln -s ../deps ./
+    ''}
+
     runHook postConfigure
   '';