Andrew Sayers <andrew-git@xxxxxxxxxxxxxxx> writes: > 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 <andrew-git@xxxxxxxxxxxxxxx> > --- > +# 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@xxxxxxxxxxxxxxx: I needed to read this twice to realize that majority of people who will ever see this message on their screen are _not_ expected to send any bug report to us. Also if the user's "full bash" groks <() indirection but still fails to run completion script correctly, this message does not help them to find where to file a bug report at all. I do agree that there need to be a way to find that information for the end users, especially for those who just use binary-packaged git given by their distros, but this codepath is _not_ the place to do it. How about replacing these with something simple like: echo >&2 "You are not running full 'bash'; exiting." ; exit 127 > + BASH_VERSION: {$BASH_VERSION} > + BASHOPTS: {$BASHOPTS} > + SHELLOPTS: {$SHELLOPTS} > + POSIXLY_CORRECT: {$POSIXLY_CORRECT} > +EOF > + echo -n " command line: {" > + tr '\0' ' ' < /proc/$$/cmdline This looks like a Linux-ism to me. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html