Add bash/zsh shell completion

vintner completion bash|zsh prints a completion script meant to be
sourced (source <(vintner completion bash)); completes subcommands
(including short aliases), download's flags, and directory arguments
for install/env --bin. Mentioned in the top-level usage text and
documented in the README.

The Nivora package doesn't auto-install these system-wide yet - it'd
need Stapler's install-completion helper, whose calling convention
isn't documented anywhere in this repo or Nivora's other packages, so
guessing at it risked a broken package build for a nice-to-have.
source <(vintner completion bash) works today regardless of install
method (Nivora, prebuilt binary, or from source).
This commit is contained in:
Cheviiot
2026-07-25 10:39:22 +10:00
parent 98ee39018a
commit 26f6df6a9a
5 changed files with 202 additions and 0 deletions
+12
View File
@@ -23,6 +23,7 @@ shims, all work from your `PATH` — including full MSBuild projects and, with
- [Commands](#commands)
- [Building drivers (WDK)](#building-drivers-wdk)
- [Language](#language)
- [Shell completion](#shell-completion)
- [Using clang-cl/lld-link instead of Wine](#using-clang-cllld-link-instead-of-wine)
- [Building from source](#building-from-source)
- [How the pieces fit together](#how-the-pieces-fit-together)
@@ -103,6 +104,7 @@ vintner install (i) [dir] wire up wrappe
vintner env (e) --bin <dir>/bin/<arch> print INCLUDE/LIB for native clang-cl/lld-link use
vintner version (v) print the version
vintner help (h) print usage
vintner completion bash|zsh print a shell completion script
```
`--dest`/`[dir]` both default to `~/.vintner` when omitted.
@@ -150,6 +152,16 @@ VINTNER_LANG=ru vintner help
Deeper error text bubbled up from internal packages stays in English.
## Shell completion
```bash
source <(vintner completion bash) # or add to ~/.bashrc
source <(vintner completion zsh) # or add to ~/.zshrc
```
Completes subcommands (including the short aliases), `download`'s flags,
and directory arguments for `install`/`env --bin`.
## Using clang-cl/lld-link instead of Wine
You don't need Wine at all if you drive the (nonredistributable) MSVC/WinSDK