git-send-email --cc-cmd
This new option allows an arbitrary "cmd" to generate per patch file specific "Cc:"s. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a9ab2009db
commit
324a8bd0cf
@ -34,6 +34,12 @@ The --bcc option must be repeated for each user you want on the bcc list.
|
|||||||
+
|
+
|
||||||
The --cc option must be repeated for each user you want on the cc list.
|
The --cc option must be repeated for each user you want on the cc list.
|
||||||
|
|
||||||
|
--cc-cmd::
|
||||||
|
Specify a command to execute once per patch file which
|
||||||
|
should generate patch file specific "Cc:" entries.
|
||||||
|
Output of this command must be single email address per line.
|
||||||
|
Default is the value of 'sendemail.cccmd' configuration value.
|
||||||
|
|
||||||
--chain-reply-to, --no-chain-reply-to::
|
--chain-reply-to, --no-chain-reply-to::
|
||||||
If this is set, each email will be sent as a reply to the previous
|
If this is set, each email will be sent as a reply to the previous
|
||||||
email sent. If disabled with "--no-chain-reply-to", all emails after
|
email sent. If disabled with "--no-chain-reply-to", all emails after
|
||||||
@ -124,6 +130,9 @@ sendemail.aliasfiletype::
|
|||||||
Format of the file(s) specified in sendemail.aliasesfile. Must be
|
Format of the file(s) specified in sendemail.aliasesfile. Must be
|
||||||
one of 'mutt', 'mailrc', 'pine', or 'gnus'.
|
one of 'mutt', 'mailrc', 'pine', or 'gnus'.
|
||||||
|
|
||||||
|
sendemail.cccmd::
|
||||||
|
Command to execute to generate per patch file specific "Cc:"s.
|
||||||
|
|
||||||
sendemail.bcc::
|
sendemail.bcc::
|
||||||
Email address (or alias) to always bcc.
|
Email address (or alias) to always bcc.
|
||||||
|
|
||||||
|
@ -46,6 +46,9 @@ Options:
|
|||||||
--cc Specify an initial "Cc:" list for the entire series
|
--cc Specify an initial "Cc:" list for the entire series
|
||||||
of emails.
|
of emails.
|
||||||
|
|
||||||
|
--cc-cmd Specify a command to execute per file which adds
|
||||||
|
per file specific cc address entries
|
||||||
|
|
||||||
--bcc Specify a list of email addresses that should be Bcc:
|
--bcc Specify a list of email addresses that should be Bcc:
|
||||||
on all the emails.
|
on all the emails.
|
||||||
|
|
||||||
@ -157,13 +160,14 @@ if ($@) {
|
|||||||
my ($quiet, $dry_run) = (0, 0);
|
my ($quiet, $dry_run) = (0, 0);
|
||||||
|
|
||||||
# Variables with corresponding config settings
|
# Variables with corresponding config settings
|
||||||
my ($thread, $chain_reply_to, $suppress_from, $signed_off_cc);
|
my ($thread, $chain_reply_to, $suppress_from, $signed_off_cc, $cc_cmd);
|
||||||
|
|
||||||
my %config_settings = (
|
my %config_settings = (
|
||||||
"thread" => [\$thread, 1],
|
"thread" => [\$thread, 1],
|
||||||
"chainreplyto" => [\$chain_reply_to, 1],
|
"chainreplyto" => [\$chain_reply_to, 1],
|
||||||
"suppressfrom" => [\$suppress_from, 0],
|
"suppressfrom" => [\$suppress_from, 0],
|
||||||
"signedoffcc" => [\$signed_off_cc, 1],
|
"signedoffcc" => [\$signed_off_cc, 1],
|
||||||
|
"cccmd" => [\$cc_cmd, ""],
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach my $setting (keys %config_settings) {
|
foreach my $setting (keys %config_settings) {
|
||||||
@ -189,6 +193,7 @@ my $rc = GetOptions("sender|from=s" => \$sender,
|
|||||||
"smtp-server=s" => \$smtp_server,
|
"smtp-server=s" => \$smtp_server,
|
||||||
"compose" => \$compose,
|
"compose" => \$compose,
|
||||||
"quiet" => \$quiet,
|
"quiet" => \$quiet,
|
||||||
|
"cc-cmd=s" => \$cc_cmd,
|
||||||
"suppress-from!" => \$suppress_from,
|
"suppress-from!" => \$suppress_from,
|
||||||
"signed-off-cc|signed-off-by-cc!" => \$signed_off_cc,
|
"signed-off-cc|signed-off-by-cc!" => \$signed_off_cc,
|
||||||
"dry-run" => \$dry_run,
|
"dry-run" => \$dry_run,
|
||||||
@ -652,11 +657,26 @@ foreach my $t (@files) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
close F;
|
close F;
|
||||||
|
|
||||||
|
if ($cc_cmd ne "") {
|
||||||
|
open(F, "$cc_cmd $t |")
|
||||||
|
or die "(cc-cmd) Could not execute '$cc_cmd'";
|
||||||
|
while(<F>) {
|
||||||
|
my $c = $_;
|
||||||
|
$c =~ s/^\s*//g;
|
||||||
|
$c =~ s/\n$//g;
|
||||||
|
push @cc, $c;
|
||||||
|
printf("(cc-cmd) Adding cc: %s from: '%s'\n",
|
||||||
|
$c, $cc_cmd) unless $quiet;
|
||||||
|
}
|
||||||
|
close F
|
||||||
|
or die "(cc-cmd) failed to close pipe to '$cc_cmd'";
|
||||||
|
}
|
||||||
|
|
||||||
if (defined $author) {
|
if (defined $author) {
|
||||||
$message = "From: $author\n\n$message";
|
$message = "From: $author\n\n$message";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
send_message();
|
send_message();
|
||||||
|
|
||||||
# set up for the next message
|
# set up for the next message
|
||||||
|
Loading…
Reference in New Issue
Block a user