buildMix: default to removing target config (#430275)

Yt 1b240ff1 0369cf9a

Changed files
+13 -3
pkgs
development
beam-modules
+13 -3
pkgs/development/beam-modules/build-mix.nix
···
meta ? { },
enableDebugInfo ? false,
mixEnv ? "prod",
+
removeConfig ? true,
# A config directory that is considered for all the dependencies of an app, typically in $src/config/
# This was initially added, as some of Mobilizon's dependencies need to access the config at build time.
appConfigPath ? null,
...
}@attrs:
+
+
assert appConfigPath != null -> removeConfig;
let
shell =
···
runHook preConfigure
${./mix-configure-hook.sh}
+
${lib.optionalString (removeConfig && isNull appConfigPath)
+
# By default, we don't want to include whatever config a dependency brings; per
+
# https://hexdocs.pm/elixir/main/Config.html, config is application specific.
+
''
+
rm -rf config
+
mkdir config
+
''
+
}
${lib.optionalString (!isNull appConfigPath)
-
# Due to https://hexdocs.pm/elixir/main/Config.html the config directory
-
# of a library seems to be not considered, as config is always
-
# application specific. So we can safely delete it.
+
# Some more tightly-coupled dependencies do depend on the config of the application
+
# they're being built for.
''
rm -rf config
cp -r ${appConfigPath} config