aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Coleman <tutufan@gmail.com>2007-02-27 22:47:54 -0600
committerJunio C Hamano <junkio@cox.net>2007-02-27 21:30:38 -0800
commit1b0baf14014a2c98f1a03630294163447ce1976c (patch)
tree5655b562b1e7245740176c80abf1d4e7bb49d7fa
parent437b1b20df4b356c9342dac8d38849f24ef44f27 (diff)
downloadgit-1b0baf14014a2c98f1a03630294163447ce1976c.tar.gz
git-1b0baf14014a2c98f1a03630294163447ce1976c.tar.xz
git-send-email: abort/usage on bad option
Instead of proceeding, abort and give usage message when a bad option is seen. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-send-email.perl97
1 files changed, 53 insertions, 44 deletions
diff --git a/git-send-email.perl b/git-send-email.perl
index 6a285bfd2..a71a192e4 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -34,6 +34,53 @@ sub readline {
}
package main;
+
+sub usage {
+ print <<EOT;
+git-send-email [options] <file | directory>...
+Options:
+ --from Specify the "From:" line of the email to be sent.
+
+ --to Specify the primary "To:" line of the email.
+
+ --cc Specify an initial "Cc:" list for the entire series
+ of emails.
+
+ --bcc Specify a list of email addresses that should be Bcc:
+ on all the emails.
+
+ --compose Use \$EDITOR to edit an introductory message for the
+ patch series.
+
+ --subject Specify the initial "Subject:" line.
+ Only necessary if --compose is also set. If --compose
+ is not set, this will be prompted for.
+
+ --in-reply-to Specify the first "In-Reply-To:" header line.
+ Only used if --compose is also set. If --compose is not
+ set, this will be prompted for.
+
+ --chain-reply-to If set, the replies will all be to the previous
+ email sent, rather than to the first email sent.
+ Defaults to on.
+
+ --no-signed-off-cc Suppress the automatic addition of email addresses
+ that appear in a Signed-off-by: line, to the cc: list.
+ Note: Using this option is not recommended.
+
+ --smtp-server If set, specifies the outgoing SMTP server to use.
+ Defaults to localhost.
+
+ --suppress-from Suppress sending emails to yourself if your address
+ appears in a From: line.
+
+ --quiet Make git-send-email less verbose. One line per email
+ should be all that is output.
+
+EOT
+ exit(1);
+}
+
# most mail servers generate the Date: header, but not all...
sub format_2822_time {
my ($time) = @_;
@@ -120,6 +167,10 @@ my $rc = GetOptions("from=s" => \$from,
"dry-run" => \$dry_run,
);
+unless ($rc) {
+ usage();
+}
+
# Verify the user input
foreach my $entry (@to) {
@@ -311,50 +362,8 @@ if (@files) {
print $_,"\n" for (@files);
}
} else {
- print <<EOT;
-git-send-email [options] <file | directory> [... file | directory ]
-Options:
- --from Specify the "From:" line of the email to be sent.
-
- --to Specify the primary "To:" line of the email.
-
- --cc Specify an initial "Cc:" list for the entire series
- of emails.
-
- --bcc Specify a list of email addresses that should be Bcc:
- on all the emails.
-
- --compose Use \$EDITOR to edit an introductory message for the
- patch series.
-
- --subject Specify the initial "Subject:" line.
- Only necessary if --compose is also set. If --compose
- is not set, this will be prompted for.
-
- --in-reply-to Specify the first "In-Reply-To:" header line.
- Only used if --compose is also set. If --compose is not
- set, this will be prompted for.
-
- --chain-reply-to If set, the replies will all be to the previous
- email sent, rather than to the first email sent.
- Defaults to on.
-
- --no-signed-off-cc Suppress the automatic addition of email addresses
- that appear in a Signed-off-by: line, to the cc: list.
- Note: Using this option is not recommended.
-
- --smtp-server If set, specifies the outgoing SMTP server to use.
- Defaults to localhost.
-
- --suppress-from Suppress sending emails to yourself if your address
- appears in a From: line.
-
- --quiet Make git-send-email less verbose. One line per email should be
- all that is output.
-
-Error: Please specify a file or a directory on the command line.
-EOT
- exit(1);
+ print STDERR "\nNo patch files specified!\n\n";
+ usage();
}
# Variables we set as part of the loop over files