X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=scripts%2Fimport_vger_from_mbox;h=c33e42e45c2823e1e87e9a2139fea60efc132468;hb=68046e0fff12c35d793a7ae9f164ac415c84cc21;hp=6a00fae3fa5ff4414d9dbc2007400c09be606d70;hpb=fe99e1e4900b5fbe8da4aef25bb0dd05eacb25a3;p=public-inbox.git
diff --git a/scripts/import_vger_from_mbox b/scripts/import_vger_from_mbox
index 6a00fae3..c33e42e4 100644
--- a/scripts/import_vger_from_mbox
+++ b/scripts/import_vger_from_mbox
@@ -1,21 +1,20 @@
#!/usr/bin/perl -w
-# Copyright (C) 2016-2018 all contributors
+# Copyright (C) 2016-2021 all contributors
# License: AGPL-3.0+
use strict;
use warnings;
use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
-use PublicInbox::MIME;
-use PublicInbox::Inbox;
-use PublicInbox::V2Writable;
-use PublicInbox::Import;
+use PublicInbox::InboxWritable;
my $usage = "usage: $0 NAME EMAIL DIR \$dry_run,
'V|version=i' => \$version,
'F|format=s' => \$variant,
+ 'filter=s' => \$filter,
);
GetOptions(%opts) or die $usage;
if ($variant ne 'mboxrd' && $variant ne 'mboxo') {
@@ -23,60 +22,23 @@ if ($variant ne 'mboxrd' && $variant ne 'mboxo') {
}
my $name = shift or die $usage; # git
my $email = shift or die $usage; # git@vger.kernel.org
-my $mainrepo = shift or die $usage; # /path/to/v2/repo
+my $inboxdir = shift or die $usage; # /path/to/v2/repo
my $ibx = {
- mainrepo => $mainrepo,
+ inboxdir => $inboxdir,
name => $name,
version => $version,
- -primary_address => $email,
+ address => [ $email ],
+ filter => $filter,
};
$ibx = PublicInbox::Inbox->new($ibx);
-my $im;
unless ($dry_run) {
if ($version >= 2) {
- $im = PublicInbox::V2Writable->new($ibx, 1);
+ require PublicInbox::V2Writable;
+ PublicInbox::V2Writable->new($ibx, 1)->init_inbox(0);
} else {
- system(qw(git init --bare -q), $mainrepo);
- my $git = PublicInbox::Git->new($mainrepo);
- $im = PublicInbox::Import->new($git, $name, $email, $ibx);
+ system(qw(git init --bare -q), $inboxdir) == 0 or die;
}
}
+$ibx = PublicInbox::InboxWritable->new($ibx);
binmode STDIN;
-my $msg = '';
-use PublicInbox::Filter::Vger;
-my $vger = PublicInbox::Filter::Vger->new;
-
-sub do_add ($$) {
- my ($im, $msg) = @_;
- $$msg =~ s/(\r?\n)+\z/$1/s;
- my $mime = PublicInbox::MIME->new($msg);
- if ($variant eq 'mboxrd') {
- $$msg =~ s/^>(>*From )/$1/sm;
- } elsif ($variant eq 'mboxo') {
- $$msg =~ s/^>From /From /sm;
- }
- $mime = $vger->scrub($mime);
- return unless $im;
- $im->add($mime) or
- warn "duplicate: ",
- $mime->header_obj->header_raw('Message-ID'), "\n";
-}
-
-# asctime: From example@example.com Fri Jun 23 02:56:55 2000
-my $from_strict = qr/^From \S+ +\S+ \S+ +\S+ [^:]+:[^:]+:[^:]+ [^:]+/;
-my $prev = undef;
-while (defined(my $l = )) {
- if ($l =~ /$from_strict/o) {
- if (!defined($prev) || $prev =~ /^\r?$/) {
- do_add($im, \$msg) if $msg;
- $msg = '';
- $prev = $l;
- next;
- }
- warn "W[$.] $l\n";
- }
- $prev = $l;
- $msg .= $l;
-}
-do_add($im, \$msg) if $msg;
-$im->done if $im;
+$ibx->import_mbox(\*STDIN, $variant);