複数のTracにあるチケットの情報を取得する方法

本来だと、XML-RPCを使ったり、RSSをアグリゲートするのが良いのでしょうが、とりあえず手っ取り早く手に入れるためには、次のようにSQLiteで直接取得してしまいます。

SQL文はこちら。RSSとかでは取得できない情報が手に入ります。

$ cat closed_ticket_list.sql
.mode tabs
select id, type, time, status, summary from ticket where status not in ('closed') order by id, status;

スクリプトはこちら。/var/trac にあるものを、http://example.jp/xxx/trac/ という名前で公開しているという前提です。

$ cat list.sh
#!/bin/sh
for projectName in `ls -1 /var/trac`
do
  echo "http://example.jp/${projectName}/trac/ticket/";
  if [ -f /var/trac/$projectName/db/trac.db ]; then
    sqlite3 /var/trac/$projectName/db/trac.db < closed_ticket_list.sql
  fi
done
同じカテゴリの記事: Linux