Maildirからmboxにpackするスクリプト書いてみた
MLのシステムをfmlからmailmanに移行しようと検討中です。移行にはMaildirからmboxに変換する必要があるらしく、もうあったんだけどそんな動きをしそうなスクリプトを書いてみました。うーん、すごく雑だ。突っ込み希望です。
#!/usr/bin/ruby def main maildir = Dir.open(ARGV[0]) rescue usage("can't read directory") mbox = '' maildir.each do |file_name| path = maildir.path + '/' + file_name next if File.directory?(path) file = File.open(path) mail, from, wday, day, month, year, time = ['']*7 file.each do |line| if line =~ /^Date:\s+(.+)/ wday, day, month, year, time = $1.delete(',').split(/\s+/).values_at(0, 1, 2, 3, 4) mail += line elsif line =~ /^Return-Path:\s+<(.+)>/ from = $1 else mail += line end end file.close mbox += "From #{from} #{wday} #{month} #{day} #{time} #{year}\n" mbox += mail end maildir.close begin file = File.open(ARGV[1], 'w') file.write(mbox) ensure file.close end puts 'complete!' end def usage message puts message puts 'usage: maildir2mbox maildir mbox' exit end main