about summary refs log tree commit homepage
path: root/scripts/import_slrnspool
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/import_slrnspool')
-rwxr-xr-xscripts/import_slrnspool34
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);