#!/usr/bin/ruby
require 'net/smtp'
require 'kconv'

repogroup = ARGV[0]

REPOS=ARGV[1]
REV=ARGV[2].to_i

svnlookbin="/usr/bin/env LANG=ja_JP.EUC-JP /usr/bin/svnlook"

svnauthor=%x{ #{svnlookbin} author #{REPOS} -r #{REV}}.chomp!
svndate=%x{ /usr/bin/env LANG=C /usr/bin/svnlook date #{REPOS} -r #{REV}}.chomp!
svnchanged=%x{ #{svnlookbin} changed #{REPOS} -r #{REV}}.chomp!
svnlog=%x{ #{svnlookbin} log #{REPOS} -r #{REV}}.chomp!
svndiff=%x{ #{svnlookbin} diff #{REPOS} -r #{REV}}.chomp!

toaddr = repogroup + "@gfd-dennou.org"
fromaddr = svnauthor + "@dennou-k.gfd-dennou.org"
message_id_str_ramdom = (("a".."z").to_a + ("A".."Z").to_a + (0..9).to_a).shuffle[0..14].join
message_id_str = svnauthor + "." + message_id_str_ramdom + "_r" + REV.to_s + "@dennou-k.gfd-dennou.org"

Net::SMTP.start( 'localhost', 25 ) {|smtp|
  smtp.send_mail <<EndOfMail, fromaddr, *toaddr
From: #{fromaddr}
To: #{toaddr};
Subject: #{repogroup} commit
Message-Id: #{message_id_str}
Content-Type: text/plain; charset = ISO-2022-JP
X-Mailer: post-commit-mail.rb

date: #{svndate.tojis}
user: #{svnauthor} committed following file(s)
----
Log Message:
#{svnlog.tojis}
----
Modified Files:
#{svnchanged.tojis}

EndOfMail
}
