mirror of
https://github.com/beetbox/beets.git
synced 2026-02-23 15:59:47 +01:00
Update the bash completion script
I haven't run git blame, but this script hasn't been updated in a while. Apparently development in 'bash-completion' is moving a lot faster now, so supporting multiple mutually-incompatible versions of it has become necessary. For some reason, this issue wasn't caught on CI - I think the newer 'bash-completion' hasn't reached the distribution used there. Still, this code is now forward-compatible.
This commit is contained in:
parent
d7bf28deed
commit
b1b7230466
1 changed files with 25 additions and 5 deletions
|
|
@ -31,7 +31,7 @@
|
|||
# plugins dynamically
|
||||
#
|
||||
# Currently, only Bash 3.2 and newer is supported and the
|
||||
# `bash-completion` package is required.
|
||||
# `bash-completion` package (v2.10 or newer) is required.
|
||||
#
|
||||
# TODO
|
||||
# ----
|
||||
|
|
@ -47,6 +47,26 @@
|
|||
# completion package can handle this.
|
||||
#
|
||||
|
||||
if [[ ${BASH_COMPLETION_VERSINFO[0]} -ne 2 \
|
||||
|| ${BASH_COMPLETION_VERSINFO[1]} -lt 10 ]]; then
|
||||
echo "Incompatible version of 'bash-completion'!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# The following functions are introduced by bash-completion v2.12, and
|
||||
# at the same time the functions they replace are deprecated. In order
|
||||
# to avoid using deprecated functions, here are some forward-compatible
|
||||
# aliases which use the deprecated functions when necessary.
|
||||
|
||||
if [[ ${BASH_COMPLETION_VERSINFO[1]} -lt 12 ]]; then
|
||||
_comp_get_words() {
|
||||
_get_comp_words_by_ref "$@"
|
||||
}
|
||||
|
||||
_comp_compgen_filedir() {
|
||||
_filedir "$@"
|
||||
}
|
||||
fi
|
||||
|
||||
# Determines the beets subcommand and dispatches the completion
|
||||
# accordingly.
|
||||
|
|
@ -54,7 +74,7 @@ _beet_dispatch() {
|
|||
local cur prev cmd=
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n : cur prev
|
||||
_comp_get_words -n : cur prev
|
||||
|
||||
# Look for the beets subcommand
|
||||
local arg
|
||||
|
|
@ -99,7 +119,7 @@ _beet_complete() {
|
|||
completions="${flags___common} ${opts} ${flags}"
|
||||
COMPREPLY+=( $(compgen -W "$completions" -- $cur) )
|
||||
else
|
||||
_filedir
|
||||
_comp_compgen_filedir
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -114,12 +134,12 @@ _beet_complete_global() {
|
|||
;;
|
||||
-l|--library|-c|--config)
|
||||
# Filename completion
|
||||
_filedir
|
||||
_comp_compgen_filedir
|
||||
return
|
||||
;;
|
||||
-d|--directory)
|
||||
# Directory completion
|
||||
_filedir -d
|
||||
_comp_compgen_filedir -d
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
|
|
|||
Loading…
Reference in a new issue