# 4. `ch-completion.bash`

Tab completion for the Charliecloud command line.

## 4.1. Synopsis

    $ source ch-completion.bash

## 4.2. Description

`ch-completion.bash` provides tab completion for the charliecloud command line. Currently, tab completion is available for Bash users for the executables `ch-image`, `ch-run`, and `ch-convert`.

We do not currently install the file if Charliecloud is built from source (see issue #1842). In this case, source it from the Charliecloud source code:

    $ source $CHARLIECLOUD_SOURCE_PATH/bin/ch-completion.bash

If you installed with a distribution package, the procedure is probably nicer. See your distro’s docs if you installed a package.)

Disable completion with the utility function `ch-completion` added to your environment when the above is sourced:

    $ ch-completion --disable

## 4.3. Dependencies

Tab completion has these additional dependencies:

- Bash ≥ 4.3.0

- `bash-completion` library (GitHub, or it probably comes with your distribution, e.g.)

## 4.4. `ch-completion`

Utility function for `ch-completion.bash`.

### 4.4.1. Synopsis

    $ ch-completion [ OPTIONS ]

### 4.4.2. Description

`ch-completion` is a function to manage Charliecloud’s tab completion. It is added to the environment when completion is sourced. The option(s) given specify what to do:

`--disable`

  Disable tab completion for all Charliecloud executables.

`--help`

  Print help message.

`--version`

  Print version of tab completion that’s currently enabled.

`--version-ok`

  Verify that tab completion version is consistent with that of `ch-image`.

## 4.5. Debugging

Tab completion can write debugging logs to `/tmp/ch-completion.log`. Enable this by setting the environment variable `CH_COMPLETION_DEBUG`. (This is primarily intended for developers.)