Re: [PATCH v5] git-send-email: use ! to indicate relative path to command
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- May 12, 2021, 00:51 UTC
- Message-ID
- <YJsmeOjxd5VIbjoM@camp.crustytoothpaste.net>
- In-Reply-To
- <YJsi1jbtNFDRKXmq@coredump.intra.peff.net>
On 2021-05-12 at 00:35:34, Jeff King wrote:
Show 22 quoted lines
> On Wed, May 12, 2021 at 12:00:51AM +0000, brian m. carlson wrote: > > > > + specify a sendmail-like program instead, either by a full > > > + path-name or by prefixing the program name with `!`. The > > > + program must support the `-i` option. Default value can be > > > + specified by the `sendemail.smtpServer` configuration option; > > > + the built-in default is to search for `sendmail` in `/usr/sbin`, > > > + `/usr/lib` and $PATH if such program is available, falling back > > > + to `localhost` otherwise. > > > > Elsewhere we use the ! syntax we invoke the shell, and I would suggest > > that we do the same here. That means we'll get PATH functionality by > > default and we'll let people do a modicum of scripting if they like. > > Thanks for bringing that up. I agree it makes things more consistent > with other uses of "!", and certainly it's more flexible. It does > introduce an inconsistency with the absolute-path form, as I mentioned > in https://lore.kernel.org/git/YJsiKDNbKclFU00b@coredump.intra.peff.net/. > > I don't know if that's a show-stopper or not. Certainly the > documentation can explain the difference, but it's nice to keep the > rules as simple as possible.
I think the minor incompatibility here is okay. It would have been nicer to be able to avoid it, but hindsight is always 20/20.
> (My gut feeling is that consistency with other "!" places is more > important than consistency with the absolute-path form).
Yeah, I think the shell here can be very useful, because it lets you configure something once in .gitconfig and handle system incompatibilities (a purely hypothetical example):
!f() { if [ "$(uname -s)" = Darwin ]; then sendmail "$@"; else postfix "$@"; fi; };fPeople use this functionality all the time in other places: credential helpers, editors (use a fancy graphical editor if supported, otherwise Vim), and various other places we allow this syntax.
-- brian m. carlson (he/him or they/them) Houston, Texas, US