From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Felipe Contreras" <felipe.contreras@gmail.com>,
git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"SZEDER Gábor" <szeder@ira.uka.de>,
"Thomas Rast" <trast@student.ethz.ch>
Subject: Re: [PATCH 01/12] tests: add initial bash completion tests
Date: Sun, 8 Apr 2012 04:12:45 -0400 [thread overview]
Message-ID: <20120408081245.GA18407@sigill.intra.peff.net> (raw)
In-Reply-To: <20120408054251.GA8100@sigill.intra.peff.net>
On Sun, Apr 08, 2012 at 01:42:51AM -0400, Jeff King wrote:
> > Yes, but the check needs to be careful to make sure the shell that is
> > running the check is indeed bash, so that it will explicitly exec bash for
> > somebody who is running dash but exports POSIXLY_CORRECT to make GNU
> > programs (other than bash) behave more standard compliant way.
>
> Sorry, I thought that was obvious. Yes, this:
>
> > In other words,
> >
> > if test -n "$POSIXLY_CORRECT" && test -n "$BASH"
> > then
> > : we are running bash under posix mode
> > elif ...
> >
> > or somesuch.
>
> is what I meant. Replace the "does it end in /bash" bit with
> "POSIXLY_CORRECT" but, keep the $BASH check.
BTW, if you intend to exec bash when we see a posix bash, I think you
would want to unset POSIXLY_CORRECT in case it is exported. Otherwise,
doing this:
POSIXLY_CORRECT=1 bash ./t9902-*
would loop forever, trying to restart bash, but ending up in the POSIX
version each time. So all together:
if test -n "$BASH" && test -z "$POSIXLY_CORRECT"; then
: we are in full-on bash mode. Great.
elif type bash >/dev/null 2>&1; then
# We are not bash, or are in posix mode. Run a new bash,
# making sure not to let any posix environment variable
# propagate.
unset POSIXLY_CORRECT
exec bash "$0" "$@"
else
echo '1..0 # SKIP skipping bash completion tests; bash not available'
exit 0
fi
-Peff
PS I wondered if we can continue past the "exec" in the second branch if
it fails, and if we should be exiting explicitly. POSIX specifies
that "exec" with a command never returns, and that is what dash does.
Bash will continue after a failed exec. I expected it not to do so
in posix mode, but it seems to. Which is perhaps a bug in bash, but
one we might want to deal with. Granted, the likelihood of "type"
succeeding but the exec failing is low, so it may not be worth caring
about.
next prev parent reply other threads:[~2012-04-08 8:13 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-08 3:07 [PATCH 00/12] Bash completion rework Felipe Contreras
2012-04-08 3:07 ` [PATCH 01/12] tests: add initial bash completion tests Felipe Contreras
2012-04-08 4:25 ` Junio C Hamano
2012-04-08 4:48 ` Jeff King
2012-04-08 5:41 ` Junio C Hamano
2012-04-08 5:42 ` Jeff King
2012-04-08 8:12 ` Jeff King [this message]
2012-04-08 9:07 ` Andreas Schwab
2012-04-08 11:04 ` Jeff King
2012-04-11 21:59 ` Felipe Contreras
2012-04-11 23:49 ` Junio C Hamano
2012-04-08 5:01 ` Jeff King
2012-04-08 10:30 ` Jonathan Nieder
2012-04-08 11:06 ` Jeff King
2012-04-09 19:58 ` Junio C Hamano
2012-04-08 10:28 ` John Keeping
2012-04-08 3:07 ` [PATCH 02/12] completion: simplify __gitcomp Felipe Contreras
2012-04-08 12:46 ` SZEDER Gábor
2012-04-08 13:07 ` Felipe Contreras
2012-04-08 13:27 ` Jonathan Nieder
2012-04-08 13:47 ` Felipe Contreras
2012-04-08 14:36 ` Jonathan Nieder
2012-04-08 14:58 ` Felipe Contreras
2012-04-09 18:57 ` Johannes Sixt
2012-04-09 19:12 ` Felipe Contreras
2012-04-08 14:11 ` Felipe Contreras
2012-04-08 14:39 ` Jonathan Nieder
2012-04-09 18:22 ` Junio C Hamano
2012-04-08 3:07 ` [PATCH 03/12] completion: simplify __gitcomp_1 Felipe Contreras
2012-04-08 3:07 ` [PATCH 04/12] completion: trivial simplification Felipe Contreras
2012-04-08 3:07 ` [PATCH 05/12] completion: add missing global options Felipe Contreras
2012-04-08 10:22 ` John Keeping
2012-04-08 12:36 ` SZEDER Gábor
2012-04-08 3:07 ` [PATCH 06/12] tests: add more bash completion tests Felipe Contreras
2012-04-08 3:07 ` [PATCH 07/12] completion: simplify command stuff Felipe Contreras
2012-04-11 22:14 ` SZEDER Gábor
2012-04-11 22:21 ` Felipe Contreras
2012-04-11 23:01 ` SZEDER Gábor
2012-04-11 23:45 ` Felipe Contreras
2012-04-12 23:08 ` Felipe Contreras
2012-04-08 3:07 ` [PATCH 08/12] completion: simplify _git_bundle Felipe Contreras
2012-04-08 3:07 ` [PATCH 09/12] completion: calculate argument position properly Felipe Contreras
2012-04-08 3:07 ` [PATCH 10/12] completion: add new git_complete helper Felipe Contreras
2012-04-11 22:50 ` SZEDER Gábor
2012-04-11 23:44 ` Felipe Contreras
2012-04-08 3:07 ` [PATCH 11/12] test: add tests for aliases in bash completion Felipe Contreras
2012-04-08 3:20 ` Felipe Contreras
2012-04-08 3:07 ` [PATCH 12/12] completion: rename _git and _gitk Felipe Contreras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120408081245.GA18407@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=spearce@spearce.org \
--cc=szeder@ira.uka.de \
--cc=trast@student.ethz.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).