about summary refs log tree commit homepage
path: root/script/public-inbox-mda
diff options
context:
space:
mode:
Diffstat (limited to 'script/public-inbox-mda')
-rwxr-xr-xscript/public-inbox-mda18
1 files changed, 13 insertions, 5 deletions
diff --git a/script/public-inbox-mda b/script/public-inbox-mda
index 8cf44195..766d58a6 100755
--- a/script/public-inbox-mda
+++ b/script/public-inbox-mda
@@ -15,9 +15,7 @@ sub do_exit {
 }
 
 use Email::Simple;
-use Email::MIME;
-use Email::MIME::ContentType;
-$Email::MIME::ContentType::STRICT_PARAMS = 0; # user input is imperfect
+use PublicInbox::MIME;
 use PublicInbox::MDA;
 use PublicInbox::Config;
 use PublicInbox::Import;
@@ -80,8 +78,18 @@ if (ref($ret) && $ret->isa('Email::MIME')) { # filter altered message
 } # else { accept
 
 PublicInbox::MDA->set_list_headers($mime, $dst);
-my $git = PublicInbox::Git->new($main_repo);
-my $im = PublicInbox::Import->new($git, $dst->{name}, $recipient);
+my $v = $dst->{version} || 1;
+my $im;
+if ($v == 2) {
+        require PublicInbox::V2Writable;
+        $im = PublicInbox::V2Writable->new($dst);
+        $im->{parallel} = 0; # pointless to be parallel for a single message
+} elsif ($v == 1) {
+        my $git = $dst->git;
+        $im = PublicInbox::Import->new($git, $dst->{name}, $recipient, $dst);
+} else {
+        die "Unsupported inbox version: $v\n";
+}
 if (defined $im->add($mime)) {
         $emm = $emm->abort;
 } else {