From 0c412442f5108805a1f5e3cd602b1458b1f16556 Mon Sep 17 00:00:00 2001 From: John D Pell Date: Wed, 11 Aug 2021 18:11:44 -0700 Subject: [PATCH] completion/system: give up hope Give up and accept defeat that bash-completion can't reasonably be audited for unbound parameters. Wrap invocation with disabling strictness, and restore after if it was enabled. --- completion/available/system.completion.bash | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/completion/available/system.completion.bash b/completion/available/system.completion.bash index 142e0880..c4230a1c 100755 --- a/completion/available/system.completion.bash +++ b/completion/available/system.completion.bash @@ -3,6 +3,14 @@ # Loads the system's Bash completion modules. # If Homebrew is installed (OS X), it's Bash completion modules are loaded. +if shopt -qo nounset +then # Bash-completion is too large and complex to expect to handle unbound variables throughout the whole codebase. + BASH_IT_RESTORE_NOUNSET=true + shopt -uo nounset +else + BASH_IT_RESTORE_NOUNSET=false +fi + if [[ -r "${BASH_COMPLETION:-}" ]] ; then source "${BASH_COMPLETION}" elif [[ -r /etc/bash_completion ]] ; then @@ -22,3 +30,9 @@ then source "$BASH_IT_HOMEBREW_PREFIX"/etc/profile.d/bash_completion.sh fi fi + +if $BASH_IT_RESTORE_NOUNSET +then + shopt -so nounset +fi +unset BASH_IT_RESTORE_NOUNSET