mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-12-01 18:16:14 +02:00
cfe3ee3de8
* Refactor: rename runEnv -> isNixShell * Refactor: rename left -> remainingArgs * nix-build.cc: Refactor: extract baseDir variable * nix-build.cc: Refactor: extract sourcePath, resolvedPath variables * nix-shell: Look for shell.nix when directory is specified * Add legacy setting: nix-shell-always-looks-for-shell-nix * rl-next: Add note about shell.nix lookups * tests/functional/shell.nix: Implement runHook for dummy stdenv
28 lines
821 B
Markdown
28 lines
821 B
Markdown
---
|
|
synopsis: "`nix-shell <directory>` looks for `shell.nix`"
|
|
significance: significant
|
|
issues:
|
|
- 496
|
|
- 2279
|
|
- 4529
|
|
- 5431
|
|
- 11053
|
|
prs:
|
|
- 11057
|
|
---
|
|
|
|
`nix-shell $x` now looks for `$x/shell.nix` when `$x` resolves to a directory.
|
|
|
|
Although this might be seen as a breaking change, its primarily interactive usage makes it a minor issue.
|
|
This adjustment addresses a commonly reported problem.
|
|
|
|
This also applies to `nix-shell` shebang scripts. Consider the following example:
|
|
|
|
```shell
|
|
#!/usr/bin/env nix-shell
|
|
#!nix-shell -i bash
|
|
```
|
|
|
|
This will now load `shell.nix` from the script's directory, if it exists; `default.nix` otherwise.
|
|
|
|
The old behavior can be opted into by setting the option [`nix-shell-always-looks-for-shell-nix`](@docroot@/command-ref/conf-file.md#conf-nix-shell-always-looks-for-shell-nix) to `false`.
|