On 2021-05-11 at 23:49:35, Gregory Anders wrote: > The sendemail.smtpServer configuration option and the '--smtp-server' > command line option can name a program to use by providing an absolute > path to the program. However, an absolute path is not always portable > and it is often preferable to simply specify a program name and have > 'git-send-email' find that program on $PATH. > > For example, if a user wishes to use msmtp to send emails, they might > be able to simply use > > [sendemail] > smtpServer = !msmtp > > instead of using the full path. This is particularly useful when a > common git config file is used across multiple systems where the > absolute path to a given program may differ. > > To that end, this patch allows both the configuration and command line > options to be prefixed with a '!' character to indicate that the > specified command should be found on $PATH, as if the user had entered > it directly on the command line. I think the idea of providing a way to invoke a sendmail-compatible mail server is a good idea. > Signed-off-by: Gregory Anders > --- > Diff from v4: > > * Update the test with suggestions from Jeff King (this should fix > erroneous test failures caused by patch files being deleted by earlier > tests) > * Reword the commit message with feedback from Jeff King and Junio > Hamano > > Documentation/git-send-email.txt | 13 +++++++------ > git-send-email.perl | 7 +++++-- > t/t9001-send-email.sh | 12 ++++++++++++ > 3 files changed, 24 insertions(+), 8 deletions(-) > > diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt > index 93708aefea..418e66c703 100644 > --- a/Documentation/git-send-email.txt > +++ b/Documentation/git-send-email.txt > @@ -212,12 +212,13 @@ a password is obtained using 'git-credential'. > --smtp-server=:: > If set, specifies the outgoing SMTP server to use (e.g. > `smtp.example.com` or a raw IP address). Alternatively it can > - specify a full pathname of a sendmail-like program instead; > - 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. > + 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. -- brian m. carlson (he/him or they/them) Houston, Texas, US