From: Ben Dooks Date: Thu, 12 Oct 2023 13:07:11 GMT Subject: Re: [PATCH] send-email: add --compose-cover option Message-ID: <21893610-73d8-4405-a7ea-823b750354fa@codethink.co.uk> In-Reply-To: <20231012112743.2756259-1-ben.dooks@codethink.co.uk> On 12/10/2023 12:27, Ben Dooks wrote: > Adding an option to automatically compose a cover letter would be > helpful to put the whole process of sending an series with a cover > into one command. > > Signed-off-by: Ben Dooks > --- > Documentation/git-send-email.txt | 5 +++++ > git-send-email.perl | 11 ++++++++++- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt > index 41cd8cb424..f299732867 100644 > --- a/Documentation/git-send-email.txt > +++ b/Documentation/git-send-email.txt > @@ -78,6 +78,11 @@ Missing From or In-Reply-To headers will be prompted for. > + > See the CONFIGURATION section for `sendemail.multiEdit`. > > +--compose-cover:: > + Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1]) > + to edit a cover letter generated by passing --cover-letter to > + git-send-email before invoking the editor. > + OOPS, clearly meant git-format-patch here, not git-send-email. > --from=
:: > Specify the sender of the emails. If not specified on the command line, > the value of the `sendemail.from` configuration option is used. If > diff --git a/git-send-email.perl b/git-send-email.perl > index 5861e99a6e..debec088f6 100755 > --- a/git-send-email.perl > +++ b/git-send-email.perl > @@ -54,6 +54,7 @@ sub usage { > --in-reply-to * Email "In-Reply-To:" > --[no-]xmailer * Add "X-Mailer:" header (default). > --[no-]annotate * Review each patch that will be sent in an editor. > + --compose-cover * Open an editor on format-patch --cover-letter > --compose * Open an editor for introduction. > --compose-encoding * Encoding to assume for introduction. > --8bit-encoding * Encoding to assume 8bit mails if undeclared > @@ -199,7 +200,7 @@ sub format_2822_time { > # Variables we fill in automatically, or via prompting: > my (@to,@cc,@xh,$envelope_sender, > $initial_in_reply_to,$reply_to,$initial_subject,@files, > - $author,$sender,$smtp_authpass,$annotate,$compose,$time); > + $author,$sender,$smtp_authpass,$annotate,$compose_cover,$compose,$time); > # Things we either get from config, *or* are overridden on the > # command-line. > my ($no_cc, $no_to, $no_bcc, $no_identity); > @@ -512,6 +513,7 @@ sub config_regexp { > "no-smtp-auth" => sub {$smtp_auth = 'none'}, > "annotate!" => \$annotate, > "no-annotate" => sub {$annotate = 0}, > + "compose-cover" => \$compose_cover, > "compose" => \$compose, > "quiet" => \$quiet, > "cc-cmd=s" => \$cc_cmd, > @@ -782,6 +784,9 @@ sub is_format_patch_arg { > die __("Cannot run git format-patch from outside a repository\n") > unless $repo; > require File::Temp; > + if ($compose_cover) { > + push @rev_list_opts, "--cover-letter"; > + } > push @files, $repo->command('format-patch', '-o', File::Temp::tempdir(CLEANUP => 1), @rev_list_opts); > } > > @@ -854,6 +859,8 @@ sub get_patch_subject { > > if ($annotate) { > do_edit($compose_filename, @files); > + } elsif ($compose_cover) { > + do_edit($files[0]); > } else { > do_edit($compose_filename); > } > @@ -927,6 +934,8 @@ sub get_patch_subject { > > } elsif ($annotate) { > do_edit(@files); > +} elsif ($compose_cover) { > + do_edit($files[0]); > } > > sub term { -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius https://www.codethink.co.uk/privacy.html