opsi-cli: Shell Completion
As announced in our previous blog post, we have released a new command line tool to work with opsi environments.
opsi-cli is implemented in Python and available as part of
opsi-utils >= 184.108.40.206 as well as opsi package in our public repositories at download.uib.de.
opsi-cli offers a really cool autocompletion feature which I would like to introduce in this blog post. The goal is to make working with
opsi-cli more smoothly—like on the shell, the autocompletion works for commands, subcommands, options, etc.
How to set up Shell Completion for opsi-cli
Shell completion is currently available for three different shells: Bash, ZSH, and Fish. Support for Windows PowerShell is still work in progress.
To set up
opsi-cli shell completion, type this command:
opsi-cli self setup-shell-completion
The autocompletion files are now being integrated into the shell's configuration file in your home directory. As a result, the feature is available in the active shell session and after starting a new login session. For more sophisticated setups, please use the
opsi-cli self setup-shell-completion --help command.
Note: For the shell completion to work, please make sure that the
opsi-cli executable is included in the
PATH environment variable. This is automatically the case after you've installed the opsi package or
opsi-utils (>= 220.127.116.11).
Features of opsi-cli Shell Completion
opsi-cli autocompletion works just like traditional Unix shells' tab completion. Type the first few characters of a command, subcommand, configuration item, option, file argument, or subcommand-specific argument. Pressing the [Tab] key completes the current item if it is unambiguous. Otherwise, you can type more characters and press [Tab] again to narrow down the list.
Pressing [Tab] [Tab] prints all available options or commands (depending on the context). This is how [Tab] [Tab] behaves in various situations:
opsi-clior any command that has at least one subcommand: shows a list of available (sub-)commands
-: shows available options affecting the current command or the
- After a subcommand: shows possible values for arguments, depending on the subcommand:
- For the
opsi-cli configit shows a list of all available configs to affect.
opsi-cli jsonrpc executeit shows a list of available methods (filtered by a provided prefix).
- For the
Give it a try yourself. Working with the
opsi-cli autocompletion is so much faster. If you have any questions, feel free to discuss them in our forum.