世界線航跡蔵

Mad web programmerのYuguiが技術ネタや日々のあれこれをお送りします。

2006年05月24日

tracとquickMLの連携

qwikWebは素晴らしい。エンドユーザーにもわかりやすくて良い。quickML部分の仕様は、実際の運用形態を考えたら、たいていの場合はこれで必要十分なんだよね。そして、qwikWebだ。wikiページとMLへのポストを一緒に扱えるのは良い。

で、ソフトウェア開発においては、tracでこういう機能を使えたらもっといいんじゃないかと思う。tracとメーリングリストの連携についてはMailArchiveプラグインが秀逸だ。でも、これ自体にはメーリングリストの管理機能は無い。そこで、将来はquickML/qwikWebをtrac pluginにportすることを見据えつつ、まずはメーリングリスト機能にはquickMLを利用し、tracと連携させることにした。

まずはMailArchivePluginをインストール。mailarchive-admin.pyを/usr/local/binに配置した。 そして、

require 'tempfile'

QuickML::Group.class_eval do
  def _submit_with_trac_posting(mail)
    _submit_without_trac_posting(mail)

    Tempfile.open('quickml-to-trac') { |f|
      now = Time.now.strftime('%a %b %d %H:%M:%S %Y')
      f.puts "From #{mail.mail_from} #{now}"
      mail.each_field do |name, value|
        f.puts "#{name}: #{value}"
      end
      f.puts
      f.puts mail.body

      f.flush

      command = [
        "python",
        "/var/trac/projects/#{self.name}",
        " import",
        self.name,
        f.path
      ].join(' ')
      @logger.log command
      @logger.log `#{command}`
    }
  rescue => err
    @logger.log "error: #{err.message}"
  end
  alias_method :_submit_without_trac_posting, :_submit
  alias_method :_submit, :_submit_with_trac_posting
end

これをqwik/group.rbにrequireさせればOK。 パスとかはハードコードしちゃってるけど。tracのenvironmentとメーリングリストが同名であると仮定。というか、その方が使いやすいと思うよ(Convension over Configuration!)

以上で、メーリングリストにポストすればそれがtracのほうでもMailArchivePluginを使って閲覧できるようになる。

トラックバック

http://yugui.jp/articles/439/ping

現在のところトラックバックはありません

コメント

blog comments powered by Disqus

ご案内

前の記事
次の記事

タグ一覧

過去ログ

  1. 2016年07月
  2. 2016年01月
  3. 2015年09月
  4. 2015年08月
  5. 過去ログ一覧

フィード

フィードとは

その他

Powered by "rhianolethe" the blog system