From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Sixt <j.sixt@viscovery.net>,
Adam Piatyszek <ediap@users.sourceforge.net>,
git@vger.kernel.org
Subject: [PATCH 1/3] send-email: detect invocation errors earlier
Date: Fri, 18 Jan 2008 09:19:36 -0500 [thread overview]
Message-ID: <20080118141935.GA19783@coredump.intra.peff.net> (raw)
In-Reply-To: <20080118141638.GA14928@coredump.intra.peff.net>
We never even look at the command line arguments until after
we have prompted the user for some information. So running
"git send-email" without arguments would prompt for "from"
and "to" headers, only to then die with "No patch files
specified." Instead, let's try to do as much error checking
as possible before getting user input.
Signed-off-by: Jeff King <peff@peff.net>
---
git-send-email.perl | 55 +++++++++++++++++++++++++--------------------------
1 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index e47994a..7a86977 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -314,6 +314,33 @@ if (@alias_files and $aliasfiletype and defined $parse_alias{$aliasfiletype}) {
($sender) = expand_aliases($sender) if defined $sender;
+# Now that all the defaults are set, process the rest of the command line
+# arguments and collect up the files that need to be processed.
+for my $f (@ARGV) {
+ if (-d $f) {
+ opendir(DH,$f)
+ or die "Failed to opendir $f: $!";
+
+ push @files, grep { -f $_ } map { +$f . "/" . $_ }
+ sort readdir(DH);
+
+ } elsif (-f $f) {
+ push @files, $f;
+
+ } else {
+ print STDERR "Skipping $f - not found.\n";
+ }
+}
+
+if (@files) {
+ unless ($quiet) {
+ print $_,"\n" for (@files);
+ }
+} else {
+ print STDERR "\nNo patch files specified!\n\n";
+ usage();
+}
+
my $prompting = 0;
if (!defined $sender) {
$sender = $repoauthor || $repocommitter;
@@ -427,34 +454,6 @@ EOT
@files = ($compose_filename . ".final");
}
-
-# Now that all the defaults are set, process the rest of the command line
-# arguments and collect up the files that need to be processed.
-for my $f (@ARGV) {
- if (-d $f) {
- opendir(DH,$f)
- or die "Failed to opendir $f: $!";
-
- push @files, grep { -f $_ } map { +$f . "/" . $_ }
- sort readdir(DH);
-
- } elsif (-f $f) {
- push @files, $f;
-
- } else {
- print STDERR "Skipping $f - not found.\n";
- }
-}
-
-if (@files) {
- unless ($quiet) {
- print $_,"\n" for (@files);
- }
-} else {
- print STDERR "\nNo patch files specified!\n\n";
- usage();
-}
-
# Variables we set as part of the loop over files
our ($message_id, %mail, $subject, $reply_to, $references, $message);
--
1.5.4.rc3.1128.g1826-dirty
next prev parent reply other threads:[~2008-01-18 14:20 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-17 10:10 [BUG] git send-email brakes patches with very long lines Adam Piatyszek
2008-01-17 13:13 ` Adam Piatyszek
2008-01-17 13:26 ` Adam Piatyszek
2008-01-17 15:32 ` Jeff King
2008-01-18 7:47 ` [PATCH] git-send-email.perl: check for lines longer than 998 characters Adam Piątyszek
2008-01-18 8:12 ` Johannes Sixt
2008-01-18 9:42 ` Adam Piatyszek
2008-01-18 10:01 ` Johannes Sixt
2008-01-18 10:08 ` Junio C Hamano
2008-01-18 10:37 ` Adam Piatyszek
2008-01-18 11:01 ` Junio C Hamano
2008-01-18 14:16 ` Jeff King
2008-01-18 14:19 ` Jeff King [this message]
2008-01-18 14:19 ` [PATCH 2/3] send-email: validate patches before sending anything Jeff King
2008-01-18 15:09 ` Johannes Sixt
2008-01-18 19:09 ` Jeff King
2008-01-18 17:39 ` Jay Soffian
2008-01-18 19:12 ` Jeff King
2008-01-18 14:20 ` [PATCH 3/3] send-email: add no-validate option Jeff King
2008-01-18 20:57 ` [PATCH] git-send-email.perl: check for lines longer than 998 characters Junio C Hamano
2008-01-18 21:30 ` Jeff King
2008-01-20 22:35 ` Adam Piatyszek
2008-01-20 22:53 ` Jeff King
2008-01-21 10:21 ` Adam Piatyszek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080118141935.GA19783@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=ediap@users.sourceforge.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).