Improve comments in bash completion

Signed-off-by: Harald Albers <github@albersweb.de>
This commit is contained in:
Harald Albers 2016-10-19 15:15:15 +02:00 committed by Tibor Vass
parent a511da3c57
commit ba501cf4fd
1 changed files with 52 additions and 50 deletions

View File

@ -59,8 +59,8 @@ __docker_q() {
docker ${host:+-H "$host"} ${config:+--config "$config"} 2>/dev/null "$@" docker ${host:+-H "$host"} ${config:+--config "$config"} 2>/dev/null "$@"
} }
# Returns a list of containers. Additional arguments to `docker ps` # __docker_containers returns a list of containers. Additional options to
# may be specified in order to filter the list, e.g. # `docker ps` may be specified in order to filter the list, e.g.
# `__docker_containers --filter status=running` # `__docker_containers --filter status=running`
# By default, only names are returned. # By default, only names are returned.
# Set DOCKER_COMPLETION_SHOW_CONTAINER_IDS=yes to also complete IDs. # Set DOCKER_COMPLETION_SHOW_CONTAINER_IDS=yes to also complete IDs.
@ -83,8 +83,8 @@ __docker_containers() {
__docker_q ps --format "$format" "$@" __docker_q ps --format "$format" "$@"
} }
# Applies completion of containers based on the current value of `$cur` or # __docker_complete_containers applies completion of containers based on the current
# the value of the optional first option `--cur`, if given. # value of `$cur` or the value of the optional first option `--cur`, if given.
# Additional filters may be appended, see `__docker_containers`. # Additional filters may be appended, see `__docker_containers`.
__docker_complete_containers() { __docker_complete_containers() {
local current="$cur" local current="$cur"
@ -175,8 +175,8 @@ __docker_complete_containers_and_images() {
COMPREPLY+=( "${containers[@]}" ) COMPREPLY+=( "${containers[@]}" )
} }
# Returns a list of all networks. Additional arguments to `docker network ls` # __docker_networks returns a list of all networks. Additional options to
# may be specified in order to filter the list, e.g. # `docker network ls` may be specified in order to filter the list, e.g.
# `__docker_networks --filter type=custom` # `__docker_networks --filter type=custom`
# By default, only names are returned. # By default, only names are returned.
# Set DOCKER_COMPLETION_SHOW_NETWORK_IDS=yes to also complete IDs. # Set DOCKER_COMPLETION_SHOW_NETWORK_IDS=yes to also complete IDs.
@ -199,8 +199,8 @@ __docker_networks() {
__docker_q network ls --format "$format" "$@" __docker_q network ls --format "$format" "$@"
} }
# Applies completion of networks based on the current value of `$cur` or # __docker_complete_networks applies completion of networks based on the current
# the value of the optional first option `--cur`, if given. # value of `$cur` or the value of the optional first option `--cur`, if given.
# Additional filters may be appended, see `__docker_networks`. # Additional filters may be appended, see `__docker_networks`.
__docker_complete_networks() { __docker_complete_networks() {
local current="$cur" local current="$cur"
@ -216,8 +216,8 @@ __docker_complete_containers_in_network() {
COMPREPLY=( $(compgen -W "$containers" -- "$cur") ) COMPREPLY=( $(compgen -W "$containers" -- "$cur") )
} }
# Returns a list of all volumes. Additional arguments to `docker volume ls` # __docker_volumes returns a list of all volumes. Additional options to
# may be specified in order to filter the list, e.g. # `docker volume ls` may be specified in order to filter the list, e.g.
# `__docker_volumes --filter dangling=true` # `__docker_volumes --filter dangling=true`
# Because volumes do not have IDs, this function does not distinguish between # Because volumes do not have IDs, this function does not distinguish between
# IDs and names. # IDs and names.
@ -225,8 +225,8 @@ __docker_volumes() {
__docker_q volume ls -q "$@" __docker_q volume ls -q "$@"
} }
# Applies completion of volumes based on the current value of `$cur` or # __docker_complete_volumes applies completion of volumes based on the current
# the value of the optional first option `--cur`, if given. # value of `$cur` or the value of the optional first option `--cur`, if given.
# Additional filters may be appended, see `__docker_volumes`. # Additional filters may be appended, see `__docker_volumes`.
__docker_complete_volumes() { __docker_complete_volumes() {
local current="$cur" local current="$cur"
@ -237,7 +237,7 @@ __docker_complete_volumes() {
COMPREPLY=( $(compgen -W "$(__docker_volumes "$@")" -- "$current") ) COMPREPLY=( $(compgen -W "$(__docker_volumes "$@")" -- "$current") )
} }
# Returns a list of all plugins of a given type. # __docker_plugins returns a list of all plugins of a given type.
# The type has to be specified with the mandatory option `--type`. # The type has to be specified with the mandatory option `--type`.
# Valid types are: Network, Volume, Authorization. # Valid types are: Network, Volume, Authorization.
# Completions may be added or removed with `--add` and `--remove` # Completions may be added or removed with `--add` and `--remove`
@ -270,8 +270,8 @@ __docker_plugins() {
echo "${plugins[@]} ${add[@]}" echo "${plugins[@]} ${add[@]}"
} }
# Applies completion of plugins based on the current value of `$cur` or # __docker_complete_plugins applies completion of plugins based on the current
# the value of the optional first option `--cur`, if given. # value of `$cur` or the value of the optional first option `--cur`, if given.
# The plugin type has to be specified with the next option `--type`. # The plugin type has to be specified with the next option `--type`.
__docker_complete_plugins() { __docker_complete_plugins() {
local current="$cur" local current="$cur"
@ -290,13 +290,13 @@ __docker_complete_runtimes() {
COMPREPLY=( $(compgen -W "$(__docker_runtimes)" -- "$cur") ) COMPREPLY=( $(compgen -W "$(__docker_runtimes)" -- "$cur") )
} }
# Returns a list of all nodes. Additional arguments to `docker node` # __docker_nodes returns a list of all nodes. Additional options to
# may be specified in order to filter the node list, e.g. # `docker node ls` may be specified in order to filter the list, e.g.
# `__docker_nodes --filter role=manager` # `__docker_nodes --filter role=manager`
# By default, only node names are completed. # By default, only node names are returned.
# Set DOCKER_COMPLETION_SHOW_NODE_IDS=yes to also complete node IDs. # Set DOCKER_COMPLETION_SHOW_NODE_IDS=yes to also complete node IDs.
# An optional first argument `--id|--name` may be used to limit # An optional first option `--id|--name` may be used to limit the
# the output to the IDs or names of matching nodes. This setting takes # output to the IDs or names of matching items. This setting takes
# precedence over the environment setting. # precedence over the environment setting.
__docker_nodes() { __docker_nodes() {
local fields='$2' # default: node name only local fields='$2' # default: node name only
@ -312,11 +312,11 @@ __docker_nodes() {
__docker_q node ls "$@" | tr -d '*' | awk "NR>1 {print $fields}" __docker_q node ls "$@" | tr -d '*' | awk "NR>1 {print $fields}"
} }
# Applies completion of nodes based on the current value of `$cur` or # __docker_complete_nodes applies completion of nodes based on the current
# the value of the optional first argument `--cur`, if given. # value of `$cur` or the value of the optional first option `--cur`, if given.
# Additional filters may be appended, see `__docker_nodes`. # Additional filters may be appended, see `__docker_nodes`.
__docker_complete_nodes() { __docker_complete_nodes() {
local current=$cur local current="$cur"
if [ "$1" = "--cur" ] ; then if [ "$1" = "--cur" ] ; then
current="$2" current="$2"
shift 2 shift 2
@ -329,13 +329,13 @@ __docker_complete_nodes_plus_self() {
COMPREPLY+=( self ) COMPREPLY+=( self )
} }
# Returns a list of all services. Additional arguments to `docker service ls` # __docker_services returns a list of all services. Additional options to
# may be specified in order to filter the service list, e.g. # `docker service ls` may be specified in order to filter the list, e.g.
# `__docker_services --filter name=xxx` # `__docker_services --filter name=xxx`
# By default, only node names are completed. # By default, only node names are returned.
# Set DOCKER_COMPLETION_SHOW_SERVICE_IDS=yes to also complete service IDs. # Set DOCKER_COMPLETION_SHOW_SERVICE_IDS=yes to also complete IDs.
# An optional first argument `--id|--name` may be used to limit # An optional first option `--id|--name` may be used to limit the
# the output to the IDs or names of matching services. This setting takes # output to the IDs or names of matching items. This setting takes
# precedence over the environment setting. # precedence over the environment setting.
__docker_services() { __docker_services() {
local fields='$2' # default: service name only local fields='$2' # default: service name only
@ -351,11 +351,11 @@ __docker_services() {
__docker_q service ls "$@" | awk "NR>1 {print $fields}" __docker_q service ls "$@" | awk "NR>1 {print $fields}"
} }
# Applies completion of services based on the current value of `$cur` or # __docker_complete_services applies completion of services based on the current
# the value of the optional first argument `--cur`, if given. # value of `$cur` or the value of the optional first option `--cur`, if given.
# Additional filters may be appended, see `__docker_services`. # Additional filters may be appended, see `__docker_services`.
__docker_complete_services() { __docker_complete_services() {
local current=$cur local current="$cur"
if [ "$1" = "--cur" ] ; then if [ "$1" = "--cur" ] ; then
current="$2" current="$2"
shift 2 shift 2
@ -363,16 +363,18 @@ __docker_complete_services() {
COMPREPLY=( $(compgen -W "$(__docker_services "$@")" -- "$current") ) COMPREPLY=( $(compgen -W "$(__docker_services "$@")" -- "$current") )
} }
# Appends the word passed as an argument to every word in `$COMPREPLY`. # __docker_append_to_completions appends the word passed as an argument to every
# Normally you do this with `compgen -S`. This function exists so that you can use # word in `$COMPREPLY`.
# Normally you do this with `compgen -S` while generating the completions.
# This function allows you to append a suffix later. It allows you to use
# the __docker_complete_XXX functions in cases where you need a suffix. # the __docker_complete_XXX functions in cases where you need a suffix.
__docker_append_to_completions() { __docker_append_to_completions() {
COMPREPLY=( ${COMPREPLY[@]/%/"$1"} ) COMPREPLY=( ${COMPREPLY[@]/%/"$1"} )
} }
# Finds the position of the first word that is neither option nor an option's argument. # __docker_pos_first_nonflag finds the position of the first word that is neither
# If there are options that require arguments, you should pass a glob describing those # option nor an option's argument. If there are options that require arguments,
# options, e.g. "--option1|-o|--option2" # you should pass a glob describing those options, e.g. "--option1|-o|--option2"
# Use this function to restrict completions to exact positions after the argument list. # Use this function to restrict completions to exact positions after the argument list.
__docker_pos_first_nonflag() { __docker_pos_first_nonflag() {
local argument_flags=$1 local argument_flags=$1
@ -405,8 +407,8 @@ __docker_pos_first_nonflag() {
echo $counter echo $counter
} }
# If we are currently completing the value of a map option (key=value) # __docker_map_key_of_current_option returns `key` if we are currently completing the
# which matches the extglob given as an argument, returns key. # value of a map option (`key=value`) which matches the extglob given as an argument.
# This function is needed for key-specific completions. # This function is needed for key-specific completions.
__docker_map_key_of_current_option() { __docker_map_key_of_current_option() {
local glob="$1" local glob="$1"
@ -430,9 +432,9 @@ __docker_map_key_of_current_option() {
[[ ${words[$glob_pos]} == @($glob) ]] && echo "$key" [[ ${words[$glob_pos]} == @($glob) ]] && echo "$key"
} }
# Returns the value of the first option matching option_glob. # __docker_value_of_option returns the value of the first option matching `option_glob`.
# Valid values for option_glob are option names like '--log-level' and # Valid values for `option_glob` are option names like `--log-level` and globs like
# globs like '--log-level|-l' # `--log-level|-l`
# Only positions between the command and the current word are considered. # Only positions between the command and the current word are considered.
__docker_value_of_option() { __docker_value_of_option() {
local option_extglob=$(__docker_to_extglob "$1") local option_extglob=$(__docker_to_extglob "$1")
@ -449,8 +451,8 @@ __docker_value_of_option() {
done done
} }
# Transforms a multiline list of strings into a single line string # __docker_to_alternatives transforms a multiline list of strings into a single line
# with the words separated by "|". # string with the words separated by `|`.
# This is used to prepare arguments to __docker_pos_first_nonflag(). # This is used to prepare arguments to __docker_pos_first_nonflag().
__docker_to_alternatives() { __docker_to_alternatives() {
local parts=( $1 ) local parts=( $1 )
@ -458,14 +460,14 @@ __docker_to_alternatives() {
echo "${parts[*]}" echo "${parts[*]}"
} }
# Transforms a multiline list of options into an extglob pattern # __docker_to_extglob transforms a multiline list of options into an extglob pattern
# suitable for use in case statements. # suitable for use in case statements.
__docker_to_extglob() { __docker_to_extglob() {
local extglob=$( __docker_to_alternatives "$1" ) local extglob=$( __docker_to_alternatives "$1" )
echo "@($extglob)" echo "@($extglob)"
} }
# Subcommand processing. # __docker_subcommands processes subcommands
# Locates the first occurrence of any of the subcommands contained in the # Locates the first occurrence of any of the subcommands contained in the
# first argument. In case of a match, calls the corresponding completion # first argument. In case of a match, calls the corresponding completion
# function and returns 0. # function and returns 0.
@ -494,7 +496,7 @@ __docker_subcommands() {
return 1 return 1
} }
# suppress trailing whitespace # __docker_nospace suppresses trailing whitespace
__docker_nospace() { __docker_nospace() {
# compopt is not available in ancient bash versions # compopt is not available in ancient bash versions
type compopt &>/dev/null && compopt -o nospace type compopt &>/dev/null && compopt -o nospace
@ -757,8 +759,8 @@ __docker_complete_restart() {
return 1 return 1
} }
# a selection of the available signals that is most likely of interest in the # __docker_complete_signals returns a subset of the available signals that is most likely
# context of docker containers. # relevant in the context of docker containers
__docker_complete_signals() { __docker_complete_signals() {
local signals=( local signals=(
SIGCONT SIGCONT
@ -783,8 +785,8 @@ __docker_complete_user_group() {
fi fi
} }
# global options that may appear after the docker command
_docker_docker() { _docker_docker() {
# global options that may appear after the docker command
local boolean_options=" local boolean_options="
$global_boolean_options $global_boolean_options
--help --help