lix/doc/manual/rl-next/temp-dir.md
Lily Ballard 3c8096e5cb feat: Add temp-dir setting
This adds a new temp-dir setting for controlling the temporary directory
without having to change the TMPDIR env var. This can be used to e.g.
use a path on a case-sensitive store on macOS for temporary files
without changing the TMPDIR var used by interactive shells or commands
invoked with `nix run`.

This also stops unsetting `TMPDIR` on darwin when the env var value
starts with `/var/folders/`, preferring instead to just do the check
when reading `TMPDIR`. This way the inherited `TMPDIR` env var is
preserved for child processes (such as interactive shells).

As a side effect this changes the behavior of `nix-build -o ''` to act
like `nix-build --no-out-link` instead of failing with an error caused
by trying to create a symlink at the cwd.

Fixes: #253
Fixes: #112
Change-Id: I9ee826323f2deca62854715a77ca7a373a948a29
2024-11-06 18:11:47 -08:00

638 B

synopsis issues cls category credits
Add a `temp-dir` setting to set the temporary directory location
7731
8995
fj#112
fj#253
2103
Improvements lilyball

temp-dir can now be set in the Nix configuration to change the temporary directory. This can be used to relocate all temporary files to another filesystem without affecting the TMPDIR env var inherited by interactive nix-shell/nix shell shells or nix run commands.

Also on macOS, the TMPDIR env var is no longer unset for interactive shells when pointing to a per-session /var/folders/ directory.