Namazu-users-ja(旧)


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

(虫) remove-on-the-way 途中で消してしまったら



>                                            千葉市中央区長洲
>                                                    藤原  誠
ずうっと以前に、
http://www.namazu.org/ml/namazu-devel-ja/msg01227.html
という話題があって、これが 2.0.6 で直っているはずだったので
すが、僕の不注意で、直っていませんでした。(2.0.7 も同様です)

  数多くの譜の索引を作成する場合で、(特にメールなどのように)
作成途中に一部のものを消すことが考えられる場合、お手数をおか
けしますが、添付 1 の修正をして下さい。

これの確認方法を(かなりいい加減ですが)作って見ましたので、気
になる方はこちらも試して見て下さい。(添付 2)

【確認方法】
1. 添付の perl script をどこかに置きます。(以下の例では 
   test-script としています)
2. その隣に ml という directory を作り、その中に、索引を作
   るような譜をいくつか置きます。*.html などです。
3. mkdir index しておきます。
4. ./test-script とします。

------------------
makoto@u ■8:22:32/010917(~/namazu-dev/remove-on-the-way)> ls -l
total 14
drwxr-xr-x  2 makoto  wheel  1536 Sep 17 08:15 index/  (空)
drwxr-xr-x  2 makoto  wheel   512 Sep 17 08:04 ml/     (何か入れておく)
-rwxr-xr-x  1 makoto  wheel   244 Sep 17 08:15 test-script*
------------------

○修正前
makoto@u ■8:25:55/010917(~/namazu-dev/remove-on-the-way)> ./test-script
Looking for indexing files...
22 files are found to be indexed.
mknmz: /home/makoto/namazu-dev/remove-on-the-way/files/3030: No such file or directory

で終ってしまう。これは良くない例です。問題があります。

○修正後

makoto@u ■8:27:07/010917(~/namazu-dev/remove-on-the-way)> ./test-script
Looking for indexing files...
21 files are found to be indexed.
1/21 - /home/makoto/namazu-dev/remove-on-the-way/files/3031 does NOT EXIST! skipped.
...
20/20 - /home/makoto/namazu-dev/remove-on-the-way/files/ml/3828 [text/html]
....
Writing index files...
[Base]
....

こうなれば問題が解消されています。

報告をいただいた土屋 雅稔さん、岡埜(OKANO Osamu) さん、ありがとうございます。
---
(藤原)
http://www.ki.nu/software/namazu/tutorial/
--- pl/util.pl-2.0.7	Mon Sep 17 08:17:30 2001
+++ pl/util.pl	Mon Sep 17 08:17:26 2001
@@ -145,7 +145,8 @@
 	    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
+	                               # 2.0.7 had problem
     }
     my $size = -s $fh;
     return $size;
#!/usr/local/bin/perl

system('cp -pr ml files');
$remove =`ls files | head -1`;

open(MKNMZ,'env LANG=C mknmz -f /dev/null -O index files|');
while(<MKNMZ>) {
	print ;
	if ( /files are found to be indexed/ ) {
	system("rm files/$remove")}}
__END__