2004/11/05(金)

blosxom導入覚え書き・6 〜 過去エントリ登録時の日付修正

blosxomでは一つのエントリに対し、一つのファイルが作成されます。そのファイルの作成日(最終更新日)がエントリの日付になります。
でもこの仕様では過去のエントリを登録したい時に不便なので、filedateプラグインを入れてエントリファイル名の先頭部分"YYYYMMDD〜"を作成日付と見なすようにします。

エントリと、作成日の関連付けはblosxom starter kitの初期設定ではentries_index.datファイル内に格納されています。
しかし、何らかの理由でこのファイルが壊れると、各エントリの日付がファイルの作成日に戻ってしまいます。
そこで、またentries_index.datが壊れても良いように、各エントリファイル自体の作成日を変更する事にしました。

とりあえず以下のようなシェルスクリプトを書いてみました。

#!/bin/csh
touch -t 変更日付1 エントリファイルパス1
touch -t 変更日付2 エントリファイルパス2
‥‥
‥‥

set msg = `date +"%Y/%m/%d %H:%M:%S"`" Change OK."
printf "Content-Type: text/html\n\n"
printf "<html><body>$msg</body></html>\n"

exit(0)
作成日を変更したいファイルをひたすら羅列して、touchコマンドで更新していきます。
これを「touch.cgi」というファイル名で保存し、サーバにアップロードしてパーミッションを実行形式に変更します。
最後にWebブラウザからtouch.cgiへのURLを指定(http://www.m-fo.com/〜/touch.cgi)してスクリプトを実行します。
これで各エントリファイルの作成日を変更する事が出来ました。
Powered by blosxom 2.0