diff options
Diffstat (limited to 'docs/source')
-rw-r--r-- | docs/source/complete.rst | 45 | ||||
-rw-r--r-- | docs/source/index.rst | 1 |
2 files changed, 46 insertions, 0 deletions
diff --git a/docs/source/complete.rst b/docs/source/complete.rst new file mode 100644 index 0000000..2a08098 --- /dev/null +++ b/docs/source/complete.rst @@ -0,0 +1,45 @@ +==================== + Command Completion +==================== + +A generic command completion command is available to generate a +bash-completion script. Currently, the command will generate a script +for bash versions 3 or 4. There is also a mode that generates only +data that can be used in your own script. The command completion script +is generated based on the commands and options that you have specified +in cliff. + +Usage +===== + +In order for your command to support command completions, you need to +add the `cliff.complete.CompleteCommand` class to your command manager. + +:: + + self.command_manager.add_command('complete', cliff.complete.CompleteCommand) + +When you run the command, it will generate a bash-completion script: + +:: + + (.venv)$ mycmd complete + _mycmd() + { + local cur prev words + COMPREPLY=() + _get_comp_words_by_ref -n : cur prev words + + # Command data: + cmds='agent aggregate backup' + cmds_agent='--name' + ... + if [ -z "${completed}" ] ; then + COMPREPLY=( $( compgen -f -- "$cur" ) $( compgen -d -- "$cur" ) ) + else + COMPREPLY=( $(compgen -W "${completed}" -- ${cur}) ) + fi + return 0 + } + complete -F _mycmd mycmd + diff --git a/docs/source/index.rst b/docs/source/index.rst index 0a13664..b474208 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -15,6 +15,7 @@ Contents: demoapp list_commands show_commands + complete interactive_mode classes install |