homebrew: pass onActivation.extraEnv to checks
When onActivation.cleanup == "check", a separate `brew bundle cleanup` command is run in the system.checks phase before the actual activation. This `brew bundle cleanup` invocation should use the same `extraEnv` as the main `brew bundle [install]` command, for consistency. For example, when $XDG_CONFIG_HOME is set in `extraEnv`, it should also be picked up by `brew bundle cleanup` in the system.checks phase.
This commit is contained in:
parent
ee9c7b96c9
commit
e636bf1664
1 changed files with 2 additions and 1 deletions
|
|
@ -151,7 +151,7 @@ let
|
|||
};
|
||||
description = ''
|
||||
Extra environment variables to set when {command}`nix-darwin` invokes
|
||||
{command}`brew bundle [install]` during system activation.
|
||||
{command}`brew bundle [install]` during system checks and activation.
|
||||
|
||||
Useful for setting Homebrew's `HOMEBREW_NO_*` variables (e.g.,
|
||||
`HOMEBREW_NO_ENV_HINTS`, `HOMEBREW_NO_ANALYTICS`, `HOMEBREW_NO_UPDATE_REPORT_NEW`)
|
||||
|
|
@ -1001,6 +1001,7 @@ in
|
|||
--user=${escapeShellArg cfg.user} \
|
||||
--set-home \
|
||||
env HOMEBREW_NO_AUTO_UPDATE=1 \
|
||||
${concatStringsSep " " (mapAttrsToList (k: v: "${k}=${escapeShellArg v}") cfg.onActivation.extraEnv)} \
|
||||
brew bundle cleanup --file='${brewfileFile}' 2>&1) || homebrewCleanupExitCode=$?
|
||||
if [ "$homebrewCleanupExitCode" -eq 1 ]; then
|
||||
printf >&2 '\e[1;31merror: found Homebrew packages not listed in the Brewfile, aborting activation\e[0m\n'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue