mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-29 11:20:10 +00:00
beamPackages.mixRelease: extract mixFodDepsSetupHook
This commit is contained in:
@@ -86,6 +86,7 @@ makeScopeWithSplicing' {
|
||||
mixBuildDirHook
|
||||
mixCompileHook
|
||||
mixEscriptSetupHook
|
||||
mixFodDepsSetupHook
|
||||
mixReleaseSetupHook
|
||||
rebar3CompileHook
|
||||
rebarDevendorPatchHook
|
||||
|
||||
@@ -33,6 +33,11 @@
|
||||
meta.license = lib.licenses.mit;
|
||||
} ./mix-escript-setup-hook.sh;
|
||||
|
||||
mixFodDepsSetupHook = makeSetupHook {
|
||||
name = "mix-fod-deps-setup-hook";
|
||||
meta.license = lib.licenses.mit;
|
||||
} ./mix-fod-deps-setup-hook.sh;
|
||||
|
||||
mixReleaseSetupHook = makeSetupHook {
|
||||
name = "mix-release-setup-hook.sh";
|
||||
meta.license = lib.licenses.mit;
|
||||
|
||||
29
pkgs/development/beam-modules/hooks/mix-fod-deps-setup-hook.sh
Executable file
29
pkgs/development/beam-modules/hooks/mix-fod-deps-setup-hook.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
# shellcheck shell=bash
|
||||
|
||||
mixFodDepsPostUnpack() {
|
||||
echo "Executing mixFodDepsPostUnpack"
|
||||
|
||||
if [ -n "${mixFodDeps-}" ]; then
|
||||
# Compilation of the dependencies will require that the dependency path is
|
||||
# writable, thus a copy to the $TEMPDIR is inevitable here.
|
||||
export MIX_DEPS_PATH="$TEMPDIR/deps"
|
||||
cp --no-preserve=mode -R "${mixFodDeps}" "$MIX_DEPS_PATH"
|
||||
fi
|
||||
|
||||
echo "Finished mixFodDepsPostUnpack"
|
||||
}
|
||||
|
||||
mixFodDepsPostConfigure() {
|
||||
echo "Executing mixFodDepsPostConfigure"
|
||||
|
||||
if [ -n "${mixFodDeps-}" ]; then
|
||||
# Symlink deps to build root. Allows for mixFodDeps Phoenix projects to
|
||||
# find javascript assets.
|
||||
ln -s "$MIX_DEPS_PATH" ./deps
|
||||
fi
|
||||
|
||||
echo "Finished mixFodDepsPostConfigure"
|
||||
}
|
||||
|
||||
postUnpackHooks+=(mixFodDepsPostUnpack)
|
||||
postConfigureHooks+=(mixFodDepsPostConfigure)
|
||||
@@ -20,6 +20,7 @@
|
||||
mixBuildDirHook,
|
||||
mixCompileHook,
|
||||
mixEscriptSetupHook,
|
||||
mixFodDepsSetupHook,
|
||||
mixReleaseSetupHook,
|
||||
}@inputs:
|
||||
|
||||
@@ -124,7 +125,8 @@ lib.extendMkDerivation {
|
||||
]
|
||||
++ lib.optionals (escriptBinName != null) [ mixEscriptSetupHook ]
|
||||
++ lib.optionals (escriptBinName == null) [ mixReleaseSetupHook ]
|
||||
++ (builtins.attrValues mixNixDeps);
|
||||
++ (builtins.attrValues mixNixDeps)
|
||||
++ lib.optionals (mixFodDeps != null) [ mixFodDepsSetupHook ];
|
||||
|
||||
buildInputs = [
|
||||
bashNonInteractive
|
||||
@@ -163,16 +165,6 @@ lib.extendMkDerivation {
|
||||
}
|
||||
// (attrs.env or { });
|
||||
|
||||
postUnpack = ''
|
||||
${lib.optionalString (mixFodDeps != null) ''
|
||||
# Compilation of the dependencies will require that the dependency path is
|
||||
# writable, thus a copy to the $TEMPDIR is inevitable here.
|
||||
export MIX_DEPS_PATH="$TEMPDIR/deps"
|
||||
cp --no-preserve=mode -R "${mixFodDeps}" "$MIX_DEPS_PATH"
|
||||
''}
|
||||
''
|
||||
+ (attrs.postUnpack or "");
|
||||
|
||||
configurePhase =
|
||||
attrs.configurePhase or ''
|
||||
runHook preConfigure
|
||||
@@ -198,12 +190,6 @@ lib.extendMkDerivation {
|
||||
'') 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 "$MIX_DEPS_PATH" ./deps
|
||||
''}
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user