mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 23:46:17 +01:00
827bca3212
Using the same justification as in https://gitlab.gnome.org/GNOME/dconf/-/merge_requests/81#note_2083220: it’s hard to get this right, with error handling, in a way which is understandable to people reading it, and which both bash and shellcheck will be happy with. On the assumption that none of the completions generated by any of these utilities will include ‘problematic’ characters (ones which would cause word splitting or globbing in bash), just ignore the shellcheck warnings. Note that I have not actually closely verified that these utilities can’t return ‘problematic’ characters. This means we can enable shellcheck, with fatal warnings, for these scripts, and hence catch future regressions. If someone wants to improve the handling of globbing/word splitting in some/all of these array assignments in future, the shellcheck disables can be removed. Signed-off-by: Philip Withnall <pwithnall@gnome.org>
39 lines
1023 B
Plaintext
39 lines
1023 B
Plaintext
|
|
# shellcheck shell=bash
|
|
|
|
# Check for bash
|
|
[ -z "$BASH_VERSION" ] && return
|
|
|
|
####################################################################################################
|
|
|
|
|
|
__gdbus() {
|
|
local IFS=$'\n'
|
|
local cur
|
|
cur="$(_get_cword :)"
|
|
|
|
local suggestions
|
|
suggestions="$(gdbus complete "${COMP_LINE}" "${COMP_POINT}")"
|
|
# shellcheck disable=SC2207
|
|
COMPREPLY=($(compgen -W "$suggestions" -- "$cur"))
|
|
|
|
# Remove colon-word prefix from COMPREPLY items
|
|
case "$cur" in
|
|
*:*)
|
|
case "$COMP_WORDBREAKS" in
|
|
*:*)
|
|
local colon_word=${cur%"${cur##*:}"}
|
|
local i=${#COMPREPLY[*]}
|
|
while [ $((--i)) -ge 0 ]; do
|
|
COMPREPLY[i]=${COMPREPLY[i]#"$colon_word"}
|
|
done
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
####################################################################################################
|
|
|
|
complete -o nospace -F __gdbus gdbus
|