Scroll to navigation

DH_SHELL_COMPLETIONS(1) Debhelper shell completions addon DH_SHELL_COMPLETIONS(1)

NAME

dh_shell_completions - install shell completions for package

SYNOPSIS

dh_shell_completions [debhelper options]

DESCRIPTION

dh_shell_completions is a debhelper addon for installing completion scripts for multiple shells, respecting conventions of each shell.

It currently supports bash, fish, and zsh.

To use it, Build-Depends on it, and pass --with shell_completions to debhelper.

There are several modes of action, listed in MODES. The first has highest precedence, the last lowest.

For all modes, mentioned files can have comment lines, starting with `#`.

$package in file names, if omitted, will be the first binary package defined in debian/control.

MODES

Generation

If a file named debian/[$package.]shell-completions exists, and its first non-comment line is:

        mode=gen

Then the remaining lines should be one or more stanzas, each in the format:

        command=command-to-generate --completions _SHELL_ [--write-to _PATH_]
        shells=bash,fish,zsh
        name=foo
command to generate a completion script. Assumed to print to stdout unless it contains the _PATH_ placeholder.

_SHELL_ is a placeholder for each shell in shells.

_PATH_ is an optional placeholder for the path to write the completion script to, if the command works that way.

a comma separated list of supported shell names to generate for.
an optional line to specify the name of generated completions other than $package.

command will be run for each _SHELL_ specified in shells, and installs the resulting completions with specified name.

Composite

If a file named debian/[$package.]shell-completions exists, and is in the format:

        $shell completions/foo      # installed as foo
        $shell completions/bar baz  # installed as baz

then for each line, the referenced file will be installed as a completion script for $shell, named as the comments suggest.

Separate

If a file named debian/[$package.]$shell-completions exists for a supported $shell, then one of two actions are taken, depending on its content.

If it's of the following format:

        completions/foo               # installed as foo
        completions/bar baz           # installed as baz

then the referenced file(s) will be installed as completion(s) for $shell, named as the comments above suggest.

Otherwise, it's taken as a full completion script, and installed for $shell, named $package. This is in line with dh_bash-completion.

SEE ALSO

debhelper(1)

AUTHOR

Blair Noctis <ncts@debian.org>

2025-01-11 0.1.0