docs: document new features; minor cleanup
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I6025ff8adf399a2064e316380f36fb076a6a6964
This commit is contained in:
parent
f87bc4158c
commit
8cf3409fdd
1 changed files with 48 additions and 6 deletions
54
README.md
54
README.md
|
|
@ -37,15 +37,31 @@ When a hash mismatch is detected in the underlying `nix build`, `eh` can
|
||||||
automatically update the old, broken hash with a new and correct one _directly
|
automatically update the old, broken hash with a new and correct one _directly
|
||||||
in the source file_.
|
in the source file_.
|
||||||
|
|
||||||
|
### Interactive `--ask` Flag
|
||||||
|
|
||||||
|
Pass `-a` / `--ask` to any command (`run`, `shell`, `build`, `develop`) to
|
||||||
|
enable interactive confirmation prompts. Before retrying with `--impure` or
|
||||||
|
auto-fixing a hash mismatch, `eh` will ask for confirmation:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
eh build nixpkgs#steam --ask
|
||||||
|
# ? Package 'steam' has an unfree license. Retry with --impure? (Y/n)
|
||||||
|
# ? Hash mismatch detected in pkgs/hello/default.nix. Fix it? (Y/n)
|
||||||
|
```
|
||||||
|
|
||||||
|
In non-interactive mode (no TTY), `--ask` raises an error rather than silently
|
||||||
|
skipping. Without `--ask`, prompts only appear in TTY mode.
|
||||||
|
|
||||||
## Shell Aliases
|
## Shell Aliases
|
||||||
|
|
||||||
By default, you may run the `eh` binary akin to Nix with a nicer interface. The
|
By default, you may run the `eh` binary akin to Nix with a nicer interface. The
|
||||||
supported Nix commands, i.e., nix `build`, `shell`, `run` and `develop` become
|
supported Nix commands, i.e., nix `build`, `shell`, `run` and `develop` become
|
||||||
`eh build`, `eh shell`, `eh run` and `eh develop`. However, it is possible to
|
`eh build`, `eh shell`, `eh run` and `eh develop`. However, it is possible to
|
||||||
symlink the `eh` binary to `nb`, `ns`, `nr`, and `nd` to invoke a specific
|
symlink the `eh` binary to `nb`, `ns`, `nr`, `nd`, `dev`, `ni`, and `nu` to
|
||||||
feature. For example, `nb` will act as `eh build` and `nr` will be `eh run`.
|
invoke a specific feature. For example, `nb` will act as `eh build`, `nr` will
|
||||||
|
be `eh run`, and `dev` is an alias for `nd`.
|
||||||
|
|
||||||
One special example is `eh update`, which is aliases to `nu`, that handles
|
One special example is `eh update`, which is aliased to `nu`, that handles
|
||||||
interactive Nix flake updates. It is special in the sense that the usage is
|
interactive Nix flake updates. It is special in the sense that the usage is
|
||||||
entirely different from its Nix counterpart, where you get to _interactively_
|
entirely different from its Nix counterpart, where you get to _interactively_
|
||||||
pick which inputs to update.
|
pick which inputs to update.
|
||||||
|
|
@ -56,9 +72,34 @@ After enabling shell aliases via the NixOS module or Home Manager, you can use:
|
||||||
ns nixpkgs#hello # equivalent to: nix shell nixpkgs#hello
|
ns nixpkgs#hello # equivalent to: nix shell nixpkgs#hello
|
||||||
nr nixpkgs#cowsay "Hello!" # nix run nixpkgs#cowsay
|
nr nixpkgs#cowsay "Hello!" # nix run nixpkgs#cowsay
|
||||||
nb .#myPackage # nix build .#myPackage
|
nb .#myPackage # nix build .#myPackage
|
||||||
|
nd .#myPackage # nix develop .#myPackage
|
||||||
|
dev .#myPackage # nix develop .#myPackage (alias for nd)
|
||||||
|
ni nixpkgs#hello # nix eval nixpkgs#hello.meta
|
||||||
nu # nix flake update
|
nu # nix flake update
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Shell Completions
|
||||||
|
|
||||||
|
Generate completions for bash, zsh, or fish:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
eh completion bash
|
||||||
|
eh completion zsh
|
||||||
|
eh completion fish
|
||||||
|
```
|
||||||
|
|
||||||
|
### Shell Integration Scripts
|
||||||
|
|
||||||
|
Sourceable shell integration scripts are available in the Nix package output
|
||||||
|
under `$out/nix/integrations/`:
|
||||||
|
|
||||||
|
| File | Description |
|
||||||
|
| ----------- | ----------------------------------- |
|
||||||
|
| `bash.sh` | Aliases and completion setup (bash) |
|
||||||
|
| `zsh.sh` | Aliases and completion setup (zsh) |
|
||||||
|
| `fish.fish` | Aliases and completion setup (fish) |
|
||||||
|
| `direnvrc` | Direnv integration for flakes |
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
`eh` reads configuration from the first `.eh.toml` found by walking up from the
|
`eh` reads configuration from the first `.eh.toml` found by walking up from the
|
||||||
|
|
@ -77,9 +118,10 @@ impure = true
|
||||||
impure = false
|
impure = false
|
||||||
```
|
```
|
||||||
|
|
||||||
When `impure` is absent (the default), auto-retry with `--impure` is
|
> [!TIP]
|
||||||
**automatic** — `eh` will add `--impure` and the appropriate `NIXPKGS_ALLOW_*`
|
> When `impure` is absent (the default), auto-retry with `--impure` is
|
||||||
variable whenever it detects an unfree, insecure, or broken package.
|
> **automatic**. `eh` will add `--impure` and the appropriate `NIXPKGS_ALLOW_*`
|
||||||
|
> variable whenever it detects an unfree, insecure, or broken package.
|
||||||
|
|
||||||
<!--markdownlint-disable MD013-->
|
<!--markdownlint-disable MD013-->
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue