Watch the 7.3 Webinar On-Demand
This new release brings updates to Universal Storage, query optimization, and usability that you won’t want to miss.

Toolbox Command Auto-Completion

As of Toolbox 1.6.6, the [Tab] key can be used to auto-complete Toolbox commands in both the bash and zsh shells when Toolbox is installed via .rpm and .deb packages, as well as via tarball with some additional configuration.

Info

The bash-completion package must be installed on a host that has SSH access to all hosts in the cluster. Typically, this is the Master Aggregator host.

Toolbox is installed when deploying a new self-managed cluster, or may be installed manually, typically on the cluster’s Master Aggregator host.

Install bash-completion

  1. Determine if the bash-completion package is installed.

    Red Hat Distributions

    sudo yum list installed | grep bash-completion
    ****
    bash-completion.noarch                      1:2.1-8.el7                @base    
    libvirt-bash-completion.x86_64              4.5.0-36.el7_9.3           @updates
    

    Debian Distributions

    sudo dpkg-query --list | grep bash-completion
    ****
    ii  bash-completion        1:2.10-1ubuntu1        all 
    programmable completion for the bash shell
    
  2. If bash-completion is not installed or is earlier than version 2.7, install the latest bash-completion package.

    Red Hat Distributions

    sudo yum install bash-completion
    

    Debian Distributions

    sudo apt install bash-completion
    

Copy the Auto-Completion Script

Info

This step is only required for tarball-based Toolbox installs. If Toolbox has been installed using .deb or .rpm packages, skip this step.

  1. Copy the Toolbox auto-completion script to the /etc/bash_completion.d directory.

    sudo cp <path-to-toolbox>/sdb-autocomplete/bash-completion-sdb-tools /etc/bash_completion.d/
    

    where <path-to-toolbox> is the full path to the folder that contains the Toolbox binaries (the folder that is created when the Toolbox .tar.gz file is extracted).

Configure Your Shell

This section demonstrates how to configure bash and zsh shells to enable the Toolbox auto-completion feature for terminal sessions.

bash

You may use this feature by manually sourcing the bash-completion-sdb-tools file in each new terminal session.

source /etc/bash_completion.d/bash-completion-sdb-tools

To automatically enable this feature in each new terminal session:

  1. Add the following command to your shell profile, such as the ~/.bashrc file, or the ~/.bash_profile file.

    echo "source /etc/bash_completion.d/bash-completion-sdb-tools" >> ~/.bashrc
    

    or

    echo "source /etc/bash_completion.d/bash-completion-sdb-tools" >> ~/.bash_profile
    
  2. This feature is now enabled for each new terminal session. For those terminal sessions that are already open, source your shell profile to use this feature.

    source ~/.bashrc
    

    or

    source ~/.bash_profile
    

zsh

To automatically enable this feature in each new terminal session:

  1. Add the following command to your .zshrc file.

    For .rpm or .deb package installs

    echo 'fpath=( /usr/share/sdb/zsh "${fpath[@]}" )' >> ~/.zshrc
    

    For tarball installs

     echo 'fpath=( <path-to-toolbox>/sdb-autocomplete "${fpath[@]}" )' >> ~/.zshrc
    

    where <path-to-toolbox> is the full path to the folder that contains the Toolbox binaries (the folder that is created when the .tar.gz file is extracted).

  2. Add the following command to your .zshrc file.

    echo "autoload -U compinit; compinit" >> ~/.zshrc
    
  3. This feature is now enabled for each new terminal session. For those terminal sessions that are already open, source your shell profile to use this feature.

    source ~/.zshrc
    

Using Toolbox Auto-Completion

When entering a Toolbox command such as sdb-admin, sdb-deploy, sdb-report, and sdb-toolbox-config, press the [Tab] key to see a list of available sub-commands and flags.

sdb-deploy [Tab]

For tarball installs, run this command from the folder that is created when the Toolbox .tar.gz file is extracted.

./sdb-deploy [Tab]

This will display the list of available sub-commands (with a description of the command if using zsh):

cluster-in-a-box       destroy-cluster        env
generate-cluster-file  install                list-versions
setup-cluster          ui                     uninstall              
upgrade                version

Note: In zsh, you may select a sub-command by pressing the [Tab] key repeatedly.

Example

To complete sdb-deploy install --file-path, begin typing the command and press the [Tab] key.

sdb-deploy i[Tab]

This will auto-complete to the install sub-command:

sdb-deploy install

You may then use the same method to find available flags and auto-complete the rest of the command.

Where:

sdb-deploy install --fi[Tab]

becomes:

sdb-deploy install --file-path

Resources

Refer to the SingleStore Tools Reference for more information on the available sub-commands and flags for each Toolbox command.