mirror of
https://github.com/apple/container.git
synced 2026-09-23 08:05:38 +00:00
[how-to-docs]: Add steps for installation of completion scripts (#799)
- I tested all steps locally and developers should be able to just copy/paste the commands.
This commit is contained in:
+68
-3
@@ -403,8 +403,73 @@ The `container system logs` command allows you to look at the log messages that
|
||||
%
|
||||
</pre>
|
||||
|
||||
## Setup shell completion
|
||||
## Generating and installing completion scripts
|
||||
|
||||
The `container --generate-completion-script [zsh|bash|fish]` command generates completion scripts for the provided shell.
|
||||
### Overview
|
||||
|
||||
A detailed guide on how to install the completion scripts can be found [here](https://swiftpackageindex.com/apple/swift-argument-parser/1.5.1/documentation/argumentparser/installingcompletionscripts)
|
||||
The `container --generate-completion-script [zsh|bash|fish]` command generates completion scripts for the provided shell. Below is a detailed guide on how to install the completion scripts.
|
||||
|
||||
> [!NOTE]
|
||||
> See the [swift-argument-parser documentation](https://apple.github.io/swift-argument-parser/documentation/argumentparser/installingcompletionscripts/#Installing-Zsh-Completions) for more information about generating and installing shell completion scripts.
|
||||
|
||||
### Installing `zsh` completions
|
||||
|
||||
If you have [oh-my-zsh](https://ohmyz.sh/) installed, you already have a directory of automatically loaded completion scripts — `.oh-my-zsh/completions`. Copy your new completion script to that directory. If the `completions` directory does not exist, simply make it.
|
||||
|
||||
```zsh
|
||||
mkdir -p ~/.oh-my-zsh/completions
|
||||
container --generate-completion-script zsh > ~/.oh-my-zsh/completions/_container
|
||||
source ~/.oh-my-zsh/completions/_container
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Your completion script must have the filename `_container`.
|
||||
|
||||
Without oh-my-zsh, you’ll need to add a path for completion scripts to your function path, and turn on completion script autoloading. First, add these lines to your `~/.zshrc` file:
|
||||
|
||||
```bash
|
||||
fpath=(~/.zsh/completion $fpath)
|
||||
autoload -U compinit
|
||||
compinit
|
||||
```
|
||||
|
||||
Next, create a directory at `~/.zsh/completion` and copy the completion script to the new directory.
|
||||
|
||||
```zsh
|
||||
mkdir -p ~/.zsh/completion
|
||||
container --generate-completion-script zsh > ~/.zsh/completion/_container
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
### Installing `bash` completions
|
||||
|
||||
If you have [bash-completion](https://github.com/scop/bash-completion) installed, you can just copy your new completion script to the `bash_completion.d` directory.
|
||||
|
||||
> [!NOTE]
|
||||
> The path to the directory is dependent on how bash-completion was installed. Find the correct path and then copy the completion script there. For example, if you used homebrew to install `bash-completion`:
|
||||
> ```bash
|
||||
> container --generate-completion-script bash > /opt/homebrew/etc/bash_completion.d/container
|
||||
> source /opt/homebrew/etc/bash_completion.d/container
|
||||
> ```
|
||||
|
||||
Without bash-completion, you’ll need to source the completion script directly. Create and copy it to a directory such as `~/.bash_completions`.
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.bash_completions
|
||||
container --generate-completion-script bash > ~/.bash_completions/container
|
||||
source /opt/homebrew/etc/bash_completion.d/container
|
||||
```
|
||||
|
||||
Furthermore, you can add the following line to `~/.bash_profile` or `~/.bashrc`, in order for every new bash session to have autocompletion ready.
|
||||
|
||||
```bash
|
||||
source ~/.bash_completions/container
|
||||
```
|
||||
|
||||
### Installing `fish` completions
|
||||
|
||||
Copy the completion script to any path listed in the environment variable `$fish_completion_path`.
|
||||
|
||||
```bash
|
||||
container --generate-completion-script fish > ~/.config/fish/completions/container.fish
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user