diff options
Diffstat (limited to 'nixpkgs/pkgs/development/beam-modules/mix-configure-hook.sh')
-rwxr-xr-x | nixpkgs/pkgs/development/beam-modules/mix-configure-hook.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/beam-modules/mix-configure-hook.sh b/nixpkgs/pkgs/development/beam-modules/mix-configure-hook.sh new file mode 100755 index 000000000000..f8b4f3d159fe --- /dev/null +++ b/nixpkgs/pkgs/development/beam-modules/mix-configure-hook.sh @@ -0,0 +1,18 @@ +# shellcheck shell=bash +# this hook will symlink all dependencies found in ERL_LIBS +# since Elixir 1.12.2 elixir does not look into ERL_LIBS for +# elixir depencencies anymore, so those have to be symlinked to the _build directory +mkdir -p _build/"$MIX_ENV"/lib +while read -r -d ':' lib; do + for dir in "$lib"/*; do + # Strip version number for directory name if it exists, so naming of + # all libs matches what mix's expectation. + dest=$(basename "$dir" | cut -d '-' -f1) + build_dir="_build/$MIX_ENV/lib/$dest" + ((MIX_DEBUG == 1)) && echo "Linking $dir to $build_dir" + # Symlink libs to _build so that mix can find them when compiling. + # This is what allows mix to compile the package without searching + # for dependencies over the network. + ln -s "$dir" "$build_dir" + done +done <<< "$ERL_LIBS:" |