(With some tweaks to handle `nix.enable` and order it at a more
sensible position in the `$PATH`.)
The installers actually install Nix into `root`’s profile for some
reason, which means that the path’s prioritization backfires when
the script runs as root and we’re managing the Nix installation. When
running `darwin-rebuild` as a normal user, this wasn’t a problem.
Maybe we should just have a check to make sure there’s no conflicting
Nix in `root`’s profile – it seems pretty bad for `root` to
get the wrong Nix – but it would trigger for almost everyone,
which seems kind of annoying. I guess we could automatically
remove it from `root`’s profile if it matches what’s in
`/nix/var/nix/profiles/default`…
This reverts commit 02232f71c5.
We already put `/nix/var/nix/profiles/default/bin` on the `$PATH`,
and whatever `nix.package` is set to already gets installed into
`/run/current-system/sw/bin`, so this is pointless.
This change updates the usage description of darwin-rebuild.sh as
follows:
* Add options:
--print-build-logs / -L
--no-registries
--commit-lock-file
--no-write-lock-file
--override-input
* Specify that --no-flake and the flake related options are
mutually exclusive.
* Specify that --keep-going and -k are aliases.
* Specify that --keep-failed and -K are aliases.
* Correct the description of --update-input; only one value follows.
The --no-build-hook argument remains undocumented, like for nix.
The version of sudo on macOS 10.13 High Sierra does not support the
`--preserve-env=LIST` option syntax, which is used here to preserve
PATH.
Override sudo with a shell function that checks for the availability of
this option syntax, and do not pass PATH otherwise.
Also move the prefix env command in the sudo invocations into the new
sudo function.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
This flag allows forcing remote flakes (e.g. `github:foobar/nix-config`)
to be force-refreshed, which is required for quickly
iterating/activating a remote config.
After NixOS/nix#6676, the following warning is displayed when running
`darwin-rebuild switch`:
warning: $HOME ('/Users/jamie') is not owned by you, falling back to the
one defined in the 'passwd' file.