SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2005-03-04(Fri) プラグインを仲裁する

  先日からコチョコチョと書いているが、当サイトはtdiaryで運営されており、namazuによる検索システムを導入するに当たって、squeeze.rbというプラグインを追加している。ところが、ツッコミを検知してそれをメールするプラグインcomment_mail-smtp.rbと相性が悪いのか、同時に使うとツッコミ時にエラーが表示されてしまうのである。

  ツッコミ自体は記録されるため、問題がないといえばないのだが、非常にカッチョ悪い。オイラのtdiary環境に起因するモノなのかもしれないが、なんとかせねばならん。しかたないので、エラーメッセージを元に原因を洗うのである。

  ……治らん。コードを表面的にしかナメてないのでアレだが、プラグインはそのRubyコード中で、自らRubyコードを生成、本体からprocクラスで呼び出されるようなシカケっぽいのだが、その中でエラーが発生しているようなのだ。そこで、そのコードを出力させたいのだが、procクラスにはコードを出力するメソッドが備わってないのである。むぅ、それでは追跡のしようがないではないか。なんか勘違いしているのだろうか。

  しかし、突然に別の解法を思いついた。squeeze.rbというプラグインは日記の更新時に、更新した日付のHTMLを生成するのが主機能なのだが、コマンドとして任意のタイミングでHTMLを吐かせるコトもできるのだ。namazuがインデックスを作るのは1日に1度だから、その直前にsqueeze.rbを実行してHTMLを生成してやればいいのだ。なにも更新毎にHTMLを生成してやることはない。そうすれば、プラグインからsqueeze.rbを外すコトができるから、comment_mail-smtp.rbと競合してエラーがでることもないのである。

  結局はcrontabは、

# 日記タイトルリスト更新
5 2 * * * cd diary; ../public_html/diary/makecont.rb > ../public_html/diary/content.html
# HTML更新
5 3 * * * /usr/share/tdiary/plugin/squeeze.rb.cron -p /usr/share/tdiary -c /home/svx/public_html/diary -x .html /home/svx/diary/cache/html
# 検索インデックス更新
5 4 * * * export LANG=ja; mknmz -c /home/svx/diary/cache/html --output-dir=/home/svx/diary/index

  てな具合になって対処完了である。ちょっと逃げっぽいが、動けばヨイのである。あぁ、ヨイヨイ。