不定期日記
J2千葉観戦記, ライブの感想を中心とした備忘録
2009-12-15 (Tue) [長年日記]
_ [ruby][PC] Maildirからmboxに変換するスクリプト
Maildirからmboxにpackするスクリプト書いてみた - 玩具箱 にあるスクリプトを、以下の2点変更してみました。ほとんどそのままです。
- On memory で処理するのではなく、Tempfileに随時書き出す
- "." (ピリオド) で始まるファイル名を無視
#!/usr/local/bin/ruby require 'tempfile' def main maildir = Dir.open(ARGV[0]) rescue usage("can't read directory") tempmbox = Tempfile.new('maildir2mbox') maildir.each do |file_name| next if 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 tempmbox.puts "From #{from} #{wday} #{month} #{day} #{time} #{year}" tempmbox.print mail end maildir.close tempmbox.close begin tempmbox.open file = File.open(ARGV[1], 'w') while line = tempmbox.gets file.write(line) end ensure file.close tempmbox.close end puts 'complete!' end def usage message puts message puts 'usage: maildir2mbox maildir mbox' exit end main
2009-12-31 (Thu) [長年日記]
2020|07|