Tracのプラグインとかマクロとかを単一プロジェクトに
TracのプラグインはTracHacksにたくさん公開されていますが、
プロジェクトごとにプラグインやマクロをインストールできることはあまり知られていない気がします。
たぶんこんな感じでちょろっと書かれているからでしょうか。
単一プロジェクトにプラグインをインストール
単純に言うとTracのプロジェクトのディレクトリ構成の下にはpluginsやwiki-macrosというディレクトリがあるのですが、基本的にはこちらへコピーするのです。
plugins下にはプラグインの.eggファイル、
wiki-macros下にはマクロを書いた.pyファイルというだけです。
pluginの.eggファイルはPythonのバージョンによって違うのでソースからビルドする方法もメモしておきます。
$ python setup.py bdist_egg
Tracのプロジェクト共有環境はPythonのホームディレクトリ内のshareの下にあります。easy_installでPluginをインストールした場合、こちらにコピーされてます。各プロジェクトではtrac.iniでインストールされたプラグインを使うかどうか、制御しているんですね。
Trac月の英語化するには
ぽちっとなインストーラーなTracは海外にはなさそうなので、
Trac月を英語化することに挑戦してみました。これもメモ。
キーとなったのは、TRAC_LIGNT_INST_DIR/python/Lib/site-packages/tracの中。
この中にTracのソースコードが入ってます。
どうもこのソースコードがApacheのmod_pythonから実行されているっぽいのです。
trac.cgiが参照しているtracのソースはこいつを見ていました。
もしかして、
python setup.py install
すると、Pythonの実行環境のLib/site-packagesにソースコードがインストールされるんやろか。
これでとりあえずTracのアップグレードをするために、手でいじれます。
(まぁ、めんどいから褒められた手じゃないです。)
もう一つ。
TRAC_LIGNT_INST_DIR/python/share/tracの中に、
Tracの各プロジェクトで共通になる設定やテンプレートが
てんこ盛りにインストールされている模様。
この辺もいじってみました。
TracのDBを覗いてみよう。
TracのDBにはSQLite3を使っている。SQLite3自体はC,C++で書かれているらしい。配布元では各環境用のバイナリを用意してくれている。
http://www.sqlite.org/download.html
Windows用のバイナリを落として解凍して驚いた。sqlite3.exeしかない。
ほかはなーんもない。その中にはドキュメントもない。で、実行してみると設定いらずでDBができてしまう。実行はこんな感じ
sqlite3 db.filename
こうするとSQLiteのコンソールが開いてくれる。このお手軽さはサーバーを立てないとならないイメージを持っていた他のDBとは一線を隔してますね。trac.iniにDBの設定があるけれども、一行だもん。
database = sqlite:db/trac.db
Javaの組込みDBであるHSQLDBとかも使ったけれども、いくらJARで配布されているからって、クラスパスを設定したりしなきゃなんなかったもんね。JDBCのドライバ設定も一行っちゃ一行だけんども、
こっだけ簡単にコンソールはなかった気がするよ。SQLite内でのコマンドは".help"で出てくる。
さて、TracのDBですが、中身は案外簡単なのね。Wikiのテーブルなんて一つしか見当たらないよ。この中でバージョン管理もされているなんてできるもんなんだね。おいらだったら絶対へんな風にテーブル分けているだろうね。この割り切りのよさにしびれたよ。