completion: Ignore SC2207 for COMPREPLY assigments

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>
This commit is contained in:
Philip Withnall
2024-04-16 14:09:36 +01:00
parent 6024fb9753
commit 827bca3212
5 changed files with 12 additions and 0 deletions

View File

@@ -35,6 +35,7 @@ __gresource() {
;;
sections|list|details|extract)
# shellcheck disable=SC2207
COMPREPLY=($(compgen -f -- "${COMP_WORDS[${COMP_CWORD}]}"))
return 0
;;
@@ -51,6 +52,7 @@ __gresource() {
esac
local IFS=$'\n'
# shellcheck disable=SC2207
COMPREPLY=($(compgen -W "${choices}" -- "${COMP_WORDS[${COMP_CWORD}]}"))
}