fish_add_path: Automatically enable verbose mode for interactive use

fish_add_path can be used either interactively, in the commandline,
or in config.fish. That's its greatest strength, it's a very
DWIM-style command.

One of the compromises that entails, however, is that it can't really
be very loud about what it does. If it skips a path, it can't write a
warning because it might be used in config.fish.

But it *can* if it's used interactively. So we try to detect that case
and enable verbose mode automatically.

That means if you do

```fish
fish_add_path /opt/mytool/bin/mytool
```

it may tell you "Skipping path because it is a file instead of a
directory:".

The check isn't perfect, it goes through status current-command and
isatty, but it should be good for most cases (and be false in config.fish).
This commit is contained in:
Fabian Boehm
2024-05-27 08:26:18 +02:00
parent 3411b72a6d
commit 6706b15fbc
2 changed files with 7 additions and 1 deletions

View File

@@ -52,7 +52,8 @@ Options
Move already-included directories to the place they would be added - by default they would be left in place and not added again.
**-v** or **--verbose**
Print the :doc:`set <set>` command used.
Print the :doc:`set <set>` command used, and some more warnings, like when a path is skipped because it doesn't exist or is not a directory.
Verbose mode is automatically enabled when fish_add_path is used interactively and the output goes to the terminal.
**-n** or **--dry-run**
Print the ``set`` command that would be used without executing it.