Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Patch to ignore files removed while mknmz processing index



mknmz を実行して、索引を作成している最中に対象となっているファイルを削
除すると、

    検索対象のファイルを調べています...
    1個のファイルがインデックス作成の対象として見つかりました
    mknmz: /home/tsuchiya/work/namazu/bar: そのようなファイルやディレクトリはありません

というようなエラーが発生して、索引の作成が中断されてしまいます。

これは少し不便なので、ファイルが存在しない場合には、単に無視するように
変更するパッチを作成してみました。

まず、uril::filesize() 関数を以下のように変更して、ファイルが存在しな
い場合には単に 0 を返すようにします。
--- util.pl.orig	Tue Aug 21 11:07:07 2001
+++ util.pl	Sun Sep 16 19:55:48 2001
@@ -145,7 +145,7 @@
 	    return '';
 	}
     } else {
-	$fh = efopen($arg) || return 0; # in case file is removed after find_file
+	$fh = fopen($arg) || return 0; # in case file is removed after find_file
     }
     my $size = -s $fh;
     return $size;
更に、process_file() 関数を次のように変更して、ファイルサイズ == 0 の
場合を単に無視するようにします。
--- mknmz.orig	Tue Aug 21 11:07:08 2001
+++ mknmz	Sun Sep 16 20:00:45 2001
@@ -179,6 +179,8 @@
     my $processed_num = 0;
     my $file_size = util::filesize($cfile);
 
+    return ( $file_size, $processed_num ) unless $file_size;
+
     if ($var::Opt{'htmlsplit'} && $cfile =~ $conf::HTML_SUFFIX) {
 	my @parts = htmlsplit::split($cfile, "NMZ.partial");
 	if (@parts > 1) {
宜しくご検討をお願いします。

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )