send-email: validate patches before sending anything
We try to catch errors early so that we don't end up sending half of a broken patch series. Right now the only validation is checking that line-lengths are under the SMTP-mandated limit of 998. The validation parsing is very crude (it just checks each line length without understanding the mailbox format) but should work fine for this simple check. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
aa54892f5a
commit
747bbff9b9
@ -332,6 +332,11 @@ for my $f (@ARGV) {
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $f (@files) {
|
||||
my $error = validate_patch($f);
|
||||
$error and die "fatal: $f: $error\nwarning: no patches were sent\n";
|
||||
}
|
||||
|
||||
if (@files) {
|
||||
unless ($quiet) {
|
||||
print $_,"\n" for (@files);
|
||||
@ -837,3 +842,15 @@ sub unique_email_list(@) {
|
||||
}
|
||||
return @emails;
|
||||
}
|
||||
|
||||
sub validate_patch {
|
||||
my $fn = shift;
|
||||
open(my $fh, '<', $fn)
|
||||
or die "unable to open $fn: $!\n";
|
||||
while (my $line = <$fh>) {
|
||||
if (length($line) > 998) {
|
||||
return "$.: patch contains a line longer than 998 characters";
|
||||
}
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user