summaryrefslogtreecommitdiffstats
path: root/bash_completion.d
diff options
context:
space:
mode:
Diffstat (limited to 'bash_completion.d')
-rw-r--r--bash_completion.d/000_bash_completion_compat.bash507
1 files changed, 507 insertions, 0 deletions
diff --git a/bash_completion.d/000_bash_completion_compat.bash b/bash_completion.d/000_bash_completion_compat.bash
new file mode 100644
index 0000000..480ffcc
--- /dev/null
+++ b/bash_completion.d/000_bash_completion_compat.bash
@@ -0,0 +1,507 @@
+# Deprecated bash_completion functions and variables -*- shell-script -*-
+
+_comp_deprecate_func 2.12 _userland _comp_userland
+_comp_deprecate_func 2.12 _sysvdirs _comp_sysvdirs
+_comp_deprecate_func 2.12 _have _comp_have_command
+_comp_deprecate_func 2.12 _rl_enabled _comp_readline_variable_on
+_comp_deprecate_func 2.12 _command_offset _comp_command_offset
+_comp_deprecate_func 2.12 _command _comp_command
+_comp_deprecate_func 2.12 _root_command _comp_root_command
+_comp_deprecate_func 2.12 _xfunc _comp_xfunc
+_comp_deprecate_func 2.12 _upvars _comp_upvars
+_comp_deprecate_func 2.12 _get_comp_words_by_ref _comp_get_words
+_comp_deprecate_func 2.12 _known_hosts_real _comp_compgen_known_hosts
+_comp_deprecate_func 2.12 __ltrim_colon_completions _comp_ltrim_colon_completions
+_comp_deprecate_func 2.12 _variables _comp_compgen_variables
+_comp_deprecate_func 2.12 _signals _comp_compgen_signals
+_comp_deprecate_func 2.12 _mac_addresses _comp_compgen_mac_addresses
+_comp_deprecate_func 2.12 _available_interfaces _comp_compgen_available_interfaces
+_comp_deprecate_func 2.12 _configured_interfaces _comp_compgen_configured_interfaces
+_comp_deprecate_func 2.12 _ip_addresses _comp_compgen_ip_addresses
+_comp_deprecate_func 2.12 _kernel_versions _comp_compgen_kernel_versions
+_comp_deprecate_func 2.12 _uids _comp_compgen_uids
+_comp_deprecate_func 2.12 _gids _comp_compgen_gids
+_comp_deprecate_func 2.12 _xinetd_services _comp_compgen_xinetd_services
+_comp_deprecate_func 2.12 _services _comp_compgen_services
+_comp_deprecate_func 2.12 _bashcomp_try_faketty _comp_try_faketty
+_comp_deprecate_func 2.12 _expand _comp_expand
+_comp_deprecate_func 2.12 _pids _comp_compgen_pids
+_comp_deprecate_func 2.12 _pgids _comp_compgen_pgids
+_comp_deprecate_func 2.12 _pnames _comp_compgen_pnames
+_comp_deprecate_func 2.12 _modules _comp_compgen_kernel_modules
+_comp_deprecate_func 2.12 _installed_modules _comp_compgen_inserted_kernel_modules
+_comp_deprecate_func 2.12 _usergroup _comp_compgen_usergroups
+_comp_deprecate_func 2.12 _complete_as_root _comp_as_root
+_comp_deprecate_func 2.12 __load_completion _comp_load
+
+# completers
+_comp_deprecate_func 2.12 _service _comp_complete_service
+_comp_deprecate_func 2.12 _user_at_host _comp_complete_user_at_host
+_comp_deprecate_func 2.12 _known_hosts _comp_complete_known_hosts
+_comp_deprecate_func 2.12 _longopt _comp_complete_longopt
+_comp_deprecate_func 2.12 _filedir_xspec _comp_complete_filedir_xspec
+_comp_deprecate_func 2.12 _minimal _comp_complete_minimal
+
+_comp_deprecate_var 2.12 COMP_FILEDIR_FALLBACK BASH_COMPLETION_FILEDIR_FALLBACK
+_comp_deprecate_var 2.12 COMP_KNOWN_HOSTS_WITH_AVAHI BASH_COMPLETION_KNOWN_HOSTS_WITH_AVAHI
+_comp_deprecate_var 2.12 COMP_KNOWN_HOSTS_WITH_HOSTFILE BASH_COMPLETION_KNOWN_HOSTS_WITH_HOSTFILE
+
+# @deprecated 2.12 Use `_comp_xspecs`
+declare -Ag _xspecs
+
+# Backwards compatibility for compat completions that use have().
+# @deprecated 1.90 should no longer be used; generally not needed with
+# dynamically loaded completions, and _comp_have_command is suitable for
+# runtime use.
+# shellcheck disable=SC2317 # available at load time only
+have()
+{
+ unset -v have
+ _comp_have_command "$1" && have=yes
+}
+
+# This function shell-quotes the argument
+# @deprecated 2.12 Use `_comp_quote` instead. Note that `_comp_quote` stores
+# the results in the variable `REPLY` instead of writing them to stdout.
+quote()
+{
+ local quoted=${1//\'/\'\\\'\'}
+ printf "'%s'" "$quoted"
+}
+
+# @deprecated 2.12 Use `_comp_quote_compgen`
+quote_readline()
+{
+ local REPLY
+ _comp_quote_compgen "$1"
+ printf %s "$REPLY"
+}
+
+# This function is the same as `_comp_quote_compgen`, but receives the second
+# argument specifying the variable name to store the result.
+# @param $1 Argument to quote
+# @param $2 Name of variable to return result to
+# @deprecated 2.12 Use `_comp_quote_compgen "$1"` instead. Note that
+# `_comp_quote_compgen` stores the result in a fixed variable `REPLY`.
+_quote_readline_by_ref()
+{
+ [[ $2 == REPLY ]] || local REPLY
+ _comp_quote_compgen "$1"
+ [[ $2 == REPLY ]] || printf -v "$2" %s "$REPLY"
+}
+
+# This function shell-dequotes the argument
+# @deprecated 2.12 Use `_comp_dequote' instead. Note that `_comp_dequote`
+# stores the results in the array `REPLY` instead of writing them to stdout.
+dequote()
+{
+ local REPLY
+ _comp_dequote "$1"
+ local rc=$?
+ printf %s "$REPLY"
+ return $rc
+}
+
+# Assign variable one scope above the caller
+# Usage: local "$1" && _upvar $1 "value(s)"
+# @param $1 Variable name to assign value to
+# @param $* Value(s) to assign. If multiple values, an array is
+# assigned, otherwise a single value is assigned.
+# NOTE: For assigning multiple variables, use '_comp_upvars'. Do NOT
+# use multiple '_upvar' calls, since one '_upvar' call might
+# reassign a variable to be used by another '_upvar' call.
+# @see https://fvue.nl/wiki/Bash:_Passing_variables_by_reference
+# @deprecated 2.10 Use `_comp_upvars' instead
+_upvar()
+{
+ echo "bash_completion: $FUNCNAME: deprecated function," \
+ "use _comp_upvars instead" >&2
+ if unset -v "$1"; then # Unset & validate varname
+ # shellcheck disable=SC2140 # TODO
+ if (($# == 2)); then
+ eval "$1"=\"\$2\" # Return single value
+ else
+ eval "$1"=\(\"\$"{@:2}"\"\) # Return array
+ fi
+ fi
+}
+
+# Get the word to complete.
+# This is nicer than ${COMP_WORDS[COMP_CWORD]}, since it handles cases
+# where the user is completing in the middle of a word.
+# (For example, if the line is "ls foobar",
+# and the cursor is here --------> ^
+# @param $1 string Characters out of $COMP_WORDBREAKS which should NOT be
+# considered word breaks. This is useful for things like scp where
+# we want to return host:path and not only path, so we would pass the
+# colon (:) as $1 in this case.
+# @param $2 integer Index number of word to return, negatively offset to the
+# current word (default is 0, previous is 1), respecting the exclusions
+# given at $1. For example, `_get_cword "=:" 1' returns the word left of
+# the current word, respecting the exclusions "=:".
+# @deprecated 1.2 Use `_comp_get_words cur' instead
+# @see _comp_get_words()
+_get_cword()
+{
+ local LC_CTYPE=C
+ local cword words
+ _comp__reassemble_words "${1-}" words cword
+
+ # return previous word offset by $2
+ if [[ ${2-} && ${2//[^0-9]/} ]]; then
+ printf "%s" "${words[cword - $2]}"
+ elif ((${#words[cword]} == 0 && COMP_POINT == ${#COMP_LINE})); then
+ : # nothing
+ else
+ local i
+ local cur=$COMP_LINE
+ local index=$COMP_POINT
+ for ((i = 0; i <= cword; ++i)); do
+ # Current word fits in $cur, and $cur doesn't match cword?
+ while [[ ${#cur} -ge ${#words[i]} &&
+ ${cur:0:${#words[i]}} != "${words[i]}" ]]; do
+ # Strip first character
+ cur=${cur:1}
+ # Decrease cursor position, staying >= 0
+ ((index > 0)) && ((index--))
+ done
+
+ # Does found word match cword?
+ if ((i < cword)); then
+ # No, cword lies further;
+ local old_size=${#cur}
+ cur=${cur#"${words[i]}"}
+ local new_size=${#cur}
+ ((index -= old_size - new_size))
+ fi
+ done
+
+ if [[ ${words[cword]:0:${#cur}} != "$cur" ]]; then
+ # We messed up! At least return the whole word so things
+ # keep working
+ printf "%s" "${words[cword]}"
+ else
+ printf "%s" "${cur:0:index}"
+ fi
+ fi
+}
+
+# Get word previous to the current word.
+# This is a good alternative to `prev=${COMP_WORDS[COMP_CWORD-1]}' because bash4
+# will properly return the previous word with respect to any given exclusions to
+# COMP_WORDBREAKS.
+# @deprecated 1.2 Use `_comp_get_words cur prev' instead
+# @see _comp_get_words()
+#
+_get_pword()
+{
+ if ((COMP_CWORD >= 1)); then
+ _get_cword "${@-}" 1
+ fi
+}
+
+# Get real command.
+# @deprecated 2.12 Use `_comp_realcommand` instead.
+# Note that `_comp_realcommand` stores the result in the variable `REPLY`
+# instead of writing it to stdout.
+_realcommand()
+{
+ local REPLY
+ _comp_realcommand "$1"
+ local rc=$?
+ printf "%s\n" "$REPLY"
+ return $rc
+}
+
+# Initialize completion and deal with various general things: do file
+# and variable completion where appropriate, and adjust prev, words,
+# and cword as if no redirections exist so that completions do not
+# need to deal with them. Before calling this function, make sure
+# cur, prev, words, and cword are local, ditto split if you use -s.
+#
+# Options:
+# -n EXCLUDE Passed to _comp_get_words -n with redirection chars
+# -e XSPEC Passed to _filedir as first arg for stderr redirections
+# -o XSPEC Passed to _filedir as first arg for other output redirections
+# -i XSPEC Passed to _filedir as first arg for stdin redirections
+# -s Split long options with _comp__split_longopt, implies -n =
+# @var[out] cur Reconstructed current word
+# @var[out] prev Reconstructed previous word
+# @var[out] words Reconstructed words
+# @var[out] cword Current word index in `words`
+# @var[out,opt] split When "-s" is specified, `"true"/"false"` is set depending
+# on whether the split happened.
+# @return True (0) if completion needs further processing,
+# False (> 0) no further processing is necessary.
+#
+# @deprecated 2.12 Use the new interface `_comp_initialize`. The new interface
+# supports the same set of options. The new interface receives additional
+# arguments $1 (command name), $2 (part of current word before the cursor), and
+# $3 (previous word) that are specified to the completion function by Bash.
+# When `-s` is specified, instead of variable `split`, the new interface sets
+# variable `was_split` to the value "set"/"" when the split happened/not
+# happened.
+_init_completion()
+{
+ local was_split
+ _comp_initialize "$@"
+ local rc=$?
+
+ # When -s is specified, convert "split={set,}" to "split={true,false}"
+ local flag OPTIND=1 OPTARG="" OPTERR=0
+ while getopts "n:e:o:i:s" flag "$@"; do
+ case $flag in
+ [neoi]) ;;
+ s)
+ if [[ $was_split ]]; then
+ split=true
+ else
+ split=false
+ fi
+ break
+ ;;
+ esac
+ done
+
+ return "$rc"
+}
+
+# @deprecated 2.12 Use the variable `_comp_backup_glob` instead. This is the
+# backward-compatibility name.
+# shellcheck disable=SC2154 # defined in the main "bash_completion"
+_backup_glob=$_comp_backup_glob
+
+# @deprecated 2.12 use `_comp_cmd_cd` instead.
+_cd()
+{
+ declare -F _comp_cmd_cd &>/dev/null || __load_completion cd
+ _comp_cmd_cd "$@"
+}
+
+# @deprecated 2.12 Use `_comp_command_offset` instead. Note that the new
+# interface `_comp_command_offset` is changed to receive an index in
+# `words` instead of that in `COMP_WORDS` as `_command_offset` did.
+_command_offset()
+{
+ # We unset the shell variable `words` locally to tell
+ # `_comp_command_offset` that the index is intended to be that in
+ # `COMP_WORDS` instead of `words`.
+ local words
+ unset -v words
+ _comp_command_offset "$@"
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a filedir`
+_filedir()
+{
+ _comp_compgen -a filedir "$@"
+}
+
+# Perform tilde (~) completion
+# @return True (0) if completion needs further processing,
+# False (1) if tilde is followed by a valid username, completions are
+# put in COMPREPLY and no further processing is necessary.
+# @deprecated 2.12 Use `_comp_compgen -c CUR tilde [-d]`. Note that the exit
+# status of `_comp_compgen_tilde` is flipped. It returns 0 when the tilde
+# completions are attempted, or otherwise 1.
+_tilde()
+{
+ ! _comp_compgen -c "$1" tilde
+}
+
+# Helper function for _parse_help and _parse_usage.
+# @return True (0) if an option was found, False (> 0) otherwise
+# @deprecated 2.12 Use _comp_compgen_help__parse
+__parse_options()
+{
+ local -a _options=()
+ _comp_compgen_help__parse "$1"
+ printf '%s\n' "${_options[@]}"
+}
+
+# Parse GNU style help output of the given command.
+# @param $1 command; if "-", read from stdin and ignore rest of args
+# @param $2 command options (default: --help)
+# @deprecated 2.12 Use `_comp_compgen_help`. `COMPREPLY=($(compgen -W
+# '$(_parse_help "$1" ...)' -- "$cur"))` can be replaced with
+# `_comp_compgen_help [-- ...]`. Also, `var=($(_parse_help "$1" ...))` can
+# be replaced with `_comp_compgen -Rv var help [-- ...]`.
+_parse_help()
+{
+ local -a args
+ if [[ $1 == - ]]; then
+ args=(-)
+ else
+ local REPLY opt IFS=$' \t\n'
+ _comp_dequote "$1"
+ _comp_split opt "${2:---help}"
+ args=(-c "$REPLY" ${opt[@]+"${opt[@]}"})
+ fi
+ local -a REPLY=()
+ _comp_compgen -Rv REPLY help "${args[@]}" || return 1
+ ((${#REPLY[@]})) && printf '%s\n' "${REPLY[@]}"
+ return 0
+}
+
+# Parse BSD style usage output (options in brackets) of the given command.
+# @param $1 command; if "-", read from stdin and ignore rest of args
+# @param $2 command options (default: --usage)
+# @deprecated 2.12 Use `_comp_compgen_usage`. `COMPREPLY=($(compgen -W
+# '$(_parse_usage "$1" ...)' -- "$cur"))` can be replaced with
+# `_comp_compgen_usage [-- ...]`. `var=($(_parse_usage "$1" ...))` can be
+# replaced with `_comp_compgen -Rv var usage [-- ...]`.
+_parse_usage()
+{
+ local -a args
+ if [[ $1 == - ]]; then
+ args=(-)
+ else
+ local REPLY opt IFS=$' \t\n'
+ _comp_dequote "$1"
+ _comp_split opt "${2:---usage}"
+ args=(-c "$REPLY" ${opt[@]+"${opt[@]}"})
+ fi
+ local -a REPLY=()
+ _comp_compgen -Rv REPLY usage "${args[@]}" || return 1
+ ((${#REPLY[@]})) && printf '%s\n' "${REPLY[@]}"
+ return 0
+}
+
+# @deprecated 2.12 Use `_comp_get_ncpus`.
+_ncpus()
+{
+ local REPLY
+ _comp_get_ncpus
+ printf %s "$REPLY"
+}
+
+# Expand variable starting with tilde (~).
+# We want to expand ~foo/... to /home/foo/... to avoid problems when
+# word-to-complete starting with a tilde is fed to commands and ending up
+# quoted instead of expanded.
+# Only the first portion of the variable from the tilde up to the first slash
+# (~../) is expanded. The remainder of the variable, containing for example
+# a dollar sign variable ($) or asterisk (*) is not expanded.
+#
+# @deprecated 2.12 Use `_comp_expand_tilde`. The new function receives the
+# value instead of a variable name as $1 and always returns the result to the
+# variable `REPLY`.
+__expand_tilde_by_ref()
+{
+ [[ ${1+set} ]] || return 0
+ [[ $1 == REPLY ]] || local REPLY
+ _comp_expand_tilde "${!1-}"
+ # shellcheck disable=SC2059
+ [[ $1 == REPLY ]] || printf -v "$1" "$REPLY"
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a cd_devices`
+_cd_devices()
+{
+ _comp_compgen -a cd_devices
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a dvd_devices`
+_dvd_devices()
+{
+ _comp_compgen -a dvd_devices
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a pci_ids`
+_pci_ids()
+{
+ _comp_compgen -a pci_ids
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a usb_ids`
+_usb_ids()
+{
+ _comp_compgen -a usb_ids
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a terms`
+_terms()
+{
+ _comp_compgen -a terms
+}
+
+# @deprecated 2.12 Use `_comp_compgen -c "${prefix:-$cur}" allowed_users`
+_allowed_users()
+{
+ _comp_compgen -c "${1:-$cur}" allowed_users
+}
+
+# @deprecated 2.12 Use `_comp_compgen -c "${prefix:-$cur}" allowed_groups`
+_allowed_groups()
+{
+ _comp_compgen -c "${1:-$cur}" allowed_groups
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a shells`
+_shells()
+{
+ _comp_compgen -a shells
+}
+
+# @deprecated 2.12 Use `_comp_compgen -a fstypes`
+_fstypes()
+{
+ _comp_compgen -a fstypes
+}
+
+# This function returns the first argument, excluding options
+# @deprecated 2.12 Use `_comp_get_first_arg`. Note that the new function
+# `_comp_get_first_arg` operates on `words` and `cword` instead of `COMP_WORDS`
+# and `COMP_CWORD`. The new function considers a command-line argument after
+# `--` as an argument. The new function returns the result in variable `REPLY`
+# instead of `arg`.
+_get_first_arg()
+{
+ local i
+
+ arg=
+ for ((i = 1; i < COMP_CWORD; i++)); do
+ if [[ ${COMP_WORDS[i]} != -* ]]; then
+ arg=${COMP_WORDS[i]}
+ break
+ fi
+ done
+}
+
+# This function counts the number of args, excluding options
+# @param $1 chars Characters out of $COMP_WORDBREAKS which should
+# NOT be considered word breaks. See _comp__reassemble_words.
+# @param $2 glob Options whose following argument should not be counted
+# @param $3 glob Options that should be counted as args
+# @var[out] args Return the number of arguments
+# @deprecated 2.12 Use `_comp_count_args`. Note that the new function
+# `_comp_count_args` returns the result in variable `REPLY` instead of `args`.
+# In the new function, `-` is also counted as an argument. The new function
+# counts all the arguments after `--`.
+# shellcheck disable=SC2178 # assignments are not intended for global "args"
+_count_args()
+{
+ local i cword words
+ _comp__reassemble_words "${1-}" words cword
+
+ args=1
+ for ((i = 1; i < cword; i++)); do
+ # shellcheck disable=SC2053
+ if [[ ${words[i]} != -* && ${words[i - 1]} != ${2-} ||
+ ${words[i]} == ${3-} ]]; then
+ ((args++))
+ fi
+ done
+}
+
+# @deprecated 2.12 Use `_comp_load -D -- CommandName` to load the completion,
+# or use `_comp_complete_load` as a completion function specified to `complete
+# -F`.
+_completion_loader()
+{
+ # We call `_comp_complete_load` instead of `_comp_load -D` in case that
+ # `_completion_loader` is used without an argument or `_completion_loader`
+ # is specified to `complete -F` by a user.
+ _comp_complete_load "$@"
+}
+# ex: filetype=sh