Re: [RFC] LKML Archive in Maildir Format

From: Eric Wong
Date: Thu Jan 03 2019 - 20:35:28 EST


Joey Pabalinas <joeypabalinas@xxxxxxxxx> wrote:
> My only comment on the public-mailbox choice is that the documentation
> is very sparse and erratic. Myself and a couple other people just
> couldn't figure out how to convert that format to Maildir or some other
> format you could feed into a reader like neomutt.

Sorry, I didn't notice this before. I started making some attempts
at improving documentation (among other things, when time permits)
to public-inbox:

https://public-inbox.org/meta/20190102083305.30473-1-e@xxxxxxxxx/

And without knowing anything about git or public-inbox, you can
get NNTP messages into Maildir or mboxrd pretty easily. Nothing
new to learn :)

I wrote a one-off Ruby years ago (before public-inbox) for
converting slrnspools to Maildir (sample slrnpull.conf below).
But yeah, I wouldn't recommend 3M+ messages in a Maildir...

==> slrnspool2maildir <==
#!/usr/bin/ruby
require 'socket'
require 'fileutils'
HOSTNAME = Socket.gethostname

usage = "Usage #$0 <spooldir> <maildir>"
spooldir = ARGV[0] or abort usage
maildir = ARGV[1] or abort usage

f = base = nil
nr = 0
%w(cur new tmp).each { |x| FileUtils.mkpath("#{maildir}/#{x}") }
Dir.glob("#{spooldir}/*").each do |src|
File.file?(src) or next
base = File.basename(src)
dest = "#{maildir}/new/#{Time.now.to_i}_#{base}_0.#{HOSTNAME}:2,"
begin
File.link(src, dest)
rescue Errno::EEXIST
warn "#{dest} already exists"
next
end
File.unlink(src)
end
__END__
==> slrnpull.conf <==
# group_name max expire headers_only
inbox.com.example.news.group.name 1000000000 1000000000 0
# usage: slrnpull -d $PWD -h news.example.com --no-post

# Wouldn't be hard to script something using Net::NNTP in Perl
# to write directly to Maildirs, either.