[PATCH] git send-email: add --body option for --compose
From: Joe MacDonald <hidden>
Date: 2016-06-15 22:45:37
Subsystem:
the rest · Maintainer:
Linus Torvalds
If the --compose option is specified, --body will allow you to specify a file that should be included in the message body when the editor starts up. Signed-off-by: Joe MacDonald <redacted> --- I use --compose with nearly all of my send-email bundles, but immediately after I enter the editor I read in the contents of another text file that contains boilerplate text. So I modified git-send-email.perl to take a new option --body, which takes a filename as an argument and appends the contents of that file to the standard text that send-email normally puts into the .msg.$$ (or whatever file is pointed to by $compose_filename). I suppose this is even a step closer to having a batch version of send-email that will include an introduction email in the patch thread, but I don't know that such a thing is really useful to anyone. It would be for me, but I might be a special case (or at least a minority) in that. git-send-email.perl | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index 94ca5c8..17120d3 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl@@ -48,6 +48,7 @@ git send-email [options] <file | directory>... --subject <str> * Email "Subject:" --in-reply-to <str> * Email "In-Reply-To:" --compose * Open an editor for introduction. + --body <str> * Initial body for the introduction. Sending: --envelope-sender <str> * Email envelope sender.
@@ -156,6 +157,7 @@ my ($smtp_server, $smtp_server_port,$smtp_authuser, $smtp_encryption);
my ($identity, $aliasfiletype, @alias_files, @smtp_host_parts);
my ($validate);
my (@suppress_cc);
+my ($compose_body);
my %config_bool_settings = (
"thread" => [\$thread, 1],@@ -222,6 +224,7 @@ my $rc = GetOptions("sender|from=s" => \$sender, "smtp-encryption=s" => \$smtp_encryption, "identity=s" => \$identity, "compose" => \$compose, + "body=s" => \$compose_body, "quiet" => \$quiet, "cc-cmd=s" => \$cc_cmd, "suppress-from!" => \$suppress_from,
@@ -483,7 +486,11 @@ if (!defined $smtp_server) { if ($compose) { # Note that this does not need to be secure, but we will make a small # effort to have it be unique - open(C,">",$compose_filename) + if ($compose_body) { + open(CB, "<",$compose_body) + or die "Failed to open $compose_body : ". $!; + } + open(C,">>",$compose_filename) or die "Failed to open for writing $compose_filename: $!"; print C "From $sender # This line is ignored.\n"; printf C "Subject: %s\n\n", $initial_subject;
@@ -494,6 +501,11 @@ GIT: Consider including an overall diffstat ortable of contents
GIT: for the patch you are writing.
EOT
+ if ($compose_body) {
+ local $/;
+ print C <CB>;
+ close(CB);
+ }
close(C);
my $editor = $ENV{GIT_EDITOR} || Git::config(@repo, "core.editor")
|| $ENV{VISUAL} || $ENV{EDITOR} || "vi";
--
1.6.0.3.640.g6331a.dirty