]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 564082: Allow specifying defaults and overrides for incoming email
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 22 Jun 2010 02:25:37 +0000 (19:25 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 22 Jun 2010 02:25:37 +0000 (19:25 -0700)
using command-line parameters to email_in.pl
r=timello, a=mkanat

email_in.pl

index 4e44222d5ce6b03b69c154e201cbddaf8fdc2a2a..52ad27642efb0be4b11aa7540055feb623a0265f 100755 (executable)
@@ -74,7 +74,7 @@ sub parse_mail {
     debug_print('Parsing Email');
     $input_email = Email::MIME->new($mail_text);
     
-    my %fields;
+    my %fields = %{ $switch{'default'} || {} };
 
     my $summary = $input_email->header('Subject');
     if ($summary =~ /\[\S+ (\d+)\](.*)/i) {
@@ -136,6 +136,11 @@ sub parse_mail {
     }
     $fields{'comment'} = $comment;
 
+    my %override = %{ $switch{'override'} || {} };
+    foreach my $key (keys %override) {
+        $fields{$key} = $override{$key};
+    }
+
     debug_print("Parsed Fields:\n" . Dumper(\%fields), 2);
 
     return \%fields;
@@ -383,7 +388,7 @@ sub die_handler {
 
 $SIG{__DIE__} = \&die_handler;
 
-GetOptions(\%switch, 'help|h', 'verbose|v+');
+GetOptions(\%switch, 'help|h', 'verbose|v+', 'default=s%', 'override=s%');
 $switch{'verbose'} ||= 0;
 
 # Print the help message if that switch was selected.
@@ -434,13 +439,22 @@ email_in.pl - The Bugzilla Inbound Email Interface
 
 =head1 SYNOPSIS
 
- ./email_in.pl [-vvv] < email.txt
+./email_in.pl [-vvv] [--default name=value] [--override name=value] < email.txt
+
+Reads an email on STDIN (the standard input).
+
+Options:
+
+   --verbose (-v)        - Make the script print more to STDERR.
+                           Specify multiple times to print even more.
 
- Reads an email on STDIN (the standard input).
+   --default name=value  - Specify defaults for field values, like
+                           product=TestProduct. Can be specified multiple
+                           times to specify defaults for multiple fields.
 
-  Options:
-    --verbose (-v) - Make the script print more to STDERR.
-                     Specify multiple times to print even more.
+   --override name=value - Override field values specified in the email,
+                           like product=TestProduct. Can be specified
+                           multiple times to override multiple fields.
 
 =head1 DESCRIPTION