]> Sergey Matveev's repositories - public-inbox.git/blob - scripts/import_vger_from_mbox
scripts/import_vger_from_mbox: set address properly
[public-inbox.git] / scripts / import_vger_from_mbox
1 #!/usr/bin/perl -w
2 # Copyright (C) 2016-2018 all contributors <meta@public-inbox.org>
3 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
4 use strict;
5 use warnings;
6 use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
7 use PublicInbox::MIME;
8 use PublicInbox::InboxWritable;
9 use PublicInbox::V2Writable;
10 use PublicInbox::Import;
11 use PublicInbox::MDA;
12 my $usage = "usage: $0 NAME EMAIL DIR <MBOX\n";
13 my $dry_run;
14 my $version = 2;
15 my $variant = 'mboxrd';
16 my %opts = (
17         'n|dry-run' => \$dry_run,
18         'V|version=i' => \$version,
19         'F|format=s' => \$variant,
20 );
21 GetOptions(%opts) or die $usage;
22 if ($variant ne 'mboxrd' && $variant ne 'mboxo') {
23         die "Unsupported mbox variant: $variant\n";
24 }
25 my $name = shift or die $usage; # git
26 my $email = shift or die $usage; # git@vger.kernel.org
27 my $mainrepo = shift or die $usage; # /path/to/v2/repo
28 my $ibx = {
29         mainrepo => $mainrepo,
30         name => $name,
31         version => $version,
32         address => [ $email ],
33         filter => 'PublicInbox::Filter::Vger',
34 };
35 $ibx = PublicInbox::Inbox->new($ibx);
36 unless ($dry_run) {
37         if ($version >= 2) {
38                 PublicInbox::V2Writable->new($ibx, 1)->init_inbox(0);
39         } else {
40                 system(qw(git init --bare -q), $mainrepo) == 0 or die;
41         }
42 }
43 $ibx = PublicInbox::InboxWritable->new($ibx);
44 binmode STDIN;
45 $ibx->import_mbox(\*STDIN, $variant);