diff options
Diffstat (limited to 'scripts/import_slrnspool')
-rwxr-xr-x | scripts/import_slrnspool | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/scripts/import_slrnspool b/scripts/import_slrnspool index e569d004..81df6c2e 100755 --- a/scripts/import_slrnspool +++ b/scripts/import_slrnspool @@ -1,20 +1,30 @@ #!/usr/bin/perl -w -# Copyright (C) 2015-2020 all contributors <meta@public-inbox.org> +# Copyright (C) all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> -# -# Incremental (or one-shot) importer of a slrnpull news spool =begin usage +Incremental (or one-shot) importer of a slrnpull news spool. + +Since the news spool can appear as an MH folder, you may also use +lei from public-inbox 2.0+ to convert it: + + lei convert mh:$SLRNPULL_ROOT/news/foo/bar -o v2:/path/to/inbox/ + # (and `lei daemon-kill' if you don't want the daemon to linger) + +But if you want to use this script: + export ORIGINAL_RECIPIENT=address@example.com - public-inbox-init $INBOX $GIT_DIR $HTTP_URL $ORIGINAL_RECIPIENT - ./import_slrnspool SLRNPULL_ROOT/news/foo/bar + public-inbox-init -V2 $INBOX $INBOX_DIR $HTTP_URL $ORIGINAL_RECIPIENT + ./import_slrnspool $SLRNPULL_ROOT/news/foo/bar =cut -use strict; -use warnings; +use v5.12; use PublicInbox::Config; -use PublicInbox::MIME; +use PublicInbox::Eml; use PublicInbox::Import; use PublicInbox::Git; -sub usage { "Usage:\n".join('',grep(/\t/, `head -n 10 $0`)) } +sub usage { + open my $fh, '<', __FILE__; + ("Usage:\n", grep { /^=begin usage/../^=cut/ and !/^=/m } <$fh>); +} my $exit = 0; my $sighandler = sub { $exit = 1 }; $SIG{INT} = $sighandler; @@ -22,8 +32,8 @@ $SIG{TERM} = $sighandler; my $spool = shift @ARGV or die usage(); my $recipient = $ENV{ORIGINAL_RECIPIENT}; defined $recipient or die usage(); -my $config = PublicInbox::Config->new; -my $ibx = $config->lookup($recipient); +my $cfg = PublicInbox::Config->new; +my $ibx = $cfg->lookup($recipient); my $git = $ibx->git; my $im; if ($ibx->version == 2) { @@ -70,7 +80,7 @@ for (; $exit == 0 && $n < $max; $n++) { $max = $n + $max_gap; print STDERR $fn, "\n"; - my $mime = PublicInbox::MIME->new(eval { local $/; <$fh> }); + my $mime = PublicInbox::Eml->new(do { local $/; <$fh> }); $filter->scrub($mime); $im->add($mime); |