続・日記更新の半自動(?)化
2003-10-18
先日書いた日記更新の半自動(?)化の続きです。
前回のやりかただと月が変わるたびにバッチファイルを書き換える手間があったので、そこら辺を何とかしたいと考えて、バッチファイルをperlスクリプトで生成して、バッチファイルを書き換えなくともいいようにしてみました。以下日記を書き始めるときのdiary.batの内容。
@echo off
cd \
cd c:\web\noasobi\diary
Perl batmake.pl
FTP -s:c:\web\noasobi\diary\ftp\diary_dn.scr www.noasobi.net
c:\web\noasobi\diary\ftp\diaryopen.bat
以下が、今回のキモ、batmake.plの中身です。計4つのファイル(diaryopen.bat, diary_dn.scr, diary_up.scr, rss.bat)を生成します。つても"hello world" に毛が生えたようなもんですが。:p) 一部実際のものを違う文字列に替えてあります。
#perl
@date = localtime(time);
$date=sprintf("%02d%02d",$date[5]-100,$date[4]+1);
open(FILE,">ftp/diaryopen.bat");
print FILE "c:\\bin\\xyzzy\\xyzzycli.exe c:\\web\\noasobi\\diary\\$date.html\n";
close(FILE);
open(FILE,">ftp/diary_dn.scr");
print FILE "ユーザー名\n";
print FILE "パスワード\n";
print FILE "cd public_html/hogehoge/diary/\n";
print FILE "get latest.html\n";
print FILE "get $date.html\n";
print FILE "quit\n";
close(FILE);
open(FILE,">ftp/diary_up.scr");
print FILE "ユーザー名\n";
print FILE "パスワード\n";
print FILE "cd public_html/hogehoge/diary/\n";
print FILE "put latest.html\n";
print FILE "put $date.html\n";
print FILE "put rss.rdf\n";
print FILE "cd midasi\n";
print FILE "put midasi/m$date\n";
print FILE "quit\n";
close(FILE);
open(FILE,">rss.bat");
print FILE "cd \\\n";
print FILE "cd c:\\web\\noasobi\\diary\n";
print FILE "Perl c:\\web\\noasobi\\diary\\rss\\rss.pl c:\\web\\noasobi\\diary\\latest.html > c:\\web\\noasobi\\diary\\rss.rdf\n";
print FILE "Perl heading.pl $date.html > midasi\\m$date\n";
print FILE "FTP -s:c:\\web\\noasobi\\diary\\ftp\\diary_up.scr www.noasobi.net\n";
close(FILE);
これで、日記を書くときは、diary.batを実行して、書き終わったらrss.batを実行すればいいはずです。日記を書くタイミングでアップ用のバッチファイルを生成しているのは、日記書きが0時近くで2日にまたがる時のことを考えての事です。これでうまくいくと思うんですが、何しろこの日記をアップするのが最初のテストなので。:p)
あとは、index.htmlとか他にもいくつか新しい月になった時にいじらないといけないファイルがあるんですが、そこらあたりは当分手動でもいいかな。たいした手間ではないし。
「続・日記更新の半自動(?)化」へコメントをつける
- この記事の永続的 URI ならびに トラックバック ping URI
- http://diary.noasobi.net/2003/10/diary_031018a.html