[PATCH] bash-completion: Print a useful error when called in a non-bash shell
STALE3763d
From: Andrew Sayers <hidden>
Date: 2016-06-15 22:49:12
Subsystem:
the rest · Maintainer:
Linus Torvalds
Detect whether the shell supports process substitution with <() Shells that fail the test will not be able to load git-completion.bash If a bad shell is found, print a warning which gives the user as much debugging information as possible. This was added in response to a bug report on the git mailing list: http://permalink.gmane.org/gmane.comp.version-control.git/151723 Signed-off-by: Andrew Sayers <redacted> --- My thanks to solsTiCe d'Hiver for reporting this bug. contrib/completion/git-completion.bash | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 6756990..3bbb4da 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash@@ -96,6 +96,31 @@ __gitdir () fi } +# Check in case we were called with something like "sh git-completion.bash": +$( + exec 2>/dev/null + $(exec < <( )) + ) +if [[ 0 -ne $? ]] +then + cat <<EOF + +ERROR: you don't seem to be running a full bash shell. +git-completion.bash is probably about to fail with a syntax error. +If you are sure that your system is calling git-completion.bash from a bash, +then please include the following in a bug report to git@vger.kernel.org: + + BASH_VERSION: {$BASH_VERSION} + BASHOPTS: {$BASHOPTS} + SHELLOPTS: {$SHELLOPTS} + POSIXLY_CORRECT: {$POSIXLY_CORRECT} +EOF + echo -n " command line: {" + tr '\0' ' ' < /proc/$$/cmdline + echo "}" + echo +fi + # stores the divergence from upstream in $p # used by GIT_PS1_SHOWUPSTREAM __git_ps1_show_upstream ()
--
1.7.0.4