Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Patch to ignore files removed while mknmz processing index
- From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx>
 
- Date: Sun, 16 Sep 2001 20:23:08 +0900
 
- X-ml-name: namazu-devel-ja
 
- X-mail-count: 02030
 
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 )