namazu-dev(ring)


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

mknmz: find_target, show status for deny/allow/exclude/mtime



>                                            千葉市中央区長洲
>                                                    藤原  誠

 >と表示していたのですが、最近 Find.pm を使うようになってから、
 >Target Files: 16 (Scan Performance: Elapsed Sec.: 1, Files/sec: 16.0)
 >というようになったと思います。

namazu-dev: 1488 にて
From: Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
Subject: Re: index or 索引 -> find_target: Scanned :

satoru-t> あ、これは僕が変えました。--verbose を指定したときだけに表示
satoru-t> しよう、と思っていたところです。

 >なと思ったのです。ですから、この文で一番大切だったのは Scanned: と
 >Files: の差で、後はおまけで表示したらいいかなという気持で、
 >今でも、更に 
 >$DENY_REGEX
 >$EXCLUDE_REGEX 
 >$ALLOW_REGEX 
 >$HTML_SUFFIX 
 >などの原因別に(採用しなかった数を)表示するようにしたいなと思って
 >いるのです。
 
satoru-t> この手の表示は、 --verbose を指定したときだけ表示するように
satoru-t> しましょう。藤原さんの好みで有益な情報をどんどん追加してくだ
satoru-t> さいませ。:)

この件ですが、次のように表示するのはいかがでしょうか。
(変更案も添付しておきます)
変数名は 
$CountPossible というのと $Count_possible があると思うのですが、
後者の方が grep $Count_ で(似たものが全部)引っかかりやすいと思っ
たので、後者の方にしてあります。

makoto@harry  22:27:18/000217(~...namazu/scripts)> ./mknmz -V -O /tmp /home/htdocs/software/autoconf -f /tmp/test
@@ Reading rcfile: 
@@  /usr/local/etc/namazu/mknmzrc
@@  /home/makoto/.mknmzrc
@@  /tmp/test
@@  findfiles starting: Thu Feb 17 22:27:27 2000
@@ findfiles    ended: Thu Feb 17 22:27:27 2000
@@ Target Files: 2 (Scan Performance: Elapsed Sec.: 1, Files/sec: 2.0)
@@   Possible(3), (not) $ALLOW_FILE(1), $DENY_FILE(0), $DENY_PATH(0)
@@   $MTIME too old(0), $MTIME too new(0)
 
前から話題にしている設定用の変数名ですが、

  -F, --target-list=FILE   load FILE which contains a list of target files.
      --allow=PATTERN      set PATTERN for file names which will be allowed.
      --deny=PATTERN       set PATTERN for file names which will be denied.
      --exclude=PATTERN    set PATTERN for pathnames which will be excluded.

との名前の兼ね合いもあるのですね。

allow   -- $ALLOW_FILE
deny    -- $DENY_FILE
exclude -- $DENY_PATH
---
(藤原)
--- ../namazu-cvs/namazu/scripts/mknmz.in	Wed Feb 16 23:50:40 2000
+++ namazu/scripts/mknmz.in	Thu Feb 17 22:25:27 2000
@@ -63,6 +63,13 @@
 
 my $Magic = new File::MMagic;
 
+my $Count_possible = 0;
+my $Count_allow_file = 0;
+my $Count_deny_file = 0;
+my $Count_deny_path = 0;
+my $Count_too_new = 0;
+my $Count_too_old = 0;
+
 STDOUT->autoflush(1);
 STDERR->autoflush(1);
 main();
@@ -1136,20 +1143,33 @@
 		}
 		return unless -f $fname && -r $fname;
 
-		return if defined $conf::EXCLUDE_REGEX && 
-		          $fname =~ /$conf::EXCLUDE_REGEX/;
+		$Count_possible++;
+		if ( defined $conf::EXCLUDE_REGEX && 
+			    $fname =~ /$conf::EXCLUDE_REGEX/ ) {
+		    $Count_deny_path++;
+		    return; 
+		}
 
 		if (defined $conf::MTIME) {
 		    my ($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($fname);
-		    return if ($conf::MTIME < 0 && (int(-C _) 
-						    > $conf::MTIME)); 
-		    return if ($conf::MTIME > 0 && (int(-C _) 
-						    < $conf::MTIME));
+		    if ($conf::MTIME < 0 && (int(-C _) > $conf::MTIME)) {
+			$Count_too_old++;
+			return;
+		    }
+		    if ($conf::MTIME > 0 && (int(-C _) < $conf::MTIME)) {
+			$Count_too_new++;
+			return;
+		    }
 		}
-
-		if ($fname !~ m!^.*/(($conf::DENY_REGEX)(\.gz|\.Z)?)$!i &&
-		    $fname =~ m!^.*/(($conf::ALLOW_REGEX)(\.gz|\.Z|\?.*)?)$!i)
-		{
+		if ($fname =~ m!^.*/(($conf::DENY_REGEX)(\.gz|\.Z)?)$!i ) {
+		    $Count_deny_file++; 
+		    return;
+		}
+		if ($fname !~ m!^.*/(($conf::ALLOW_REGEX)(\.gz|\.Z|\?.*)?)$!i) {
+		    $Count_allow_file++; 
+		    return;
+		}
+		else{
 		    push(@flist, $fname);
 		    util::dprint(_("wanted: ") . "$fname\n");
 		}
@@ -1175,7 +1195,10 @@
     util::vprint(sprintf(_("Target Files: %d (Scan Performance: Elapsed Sec.: %d, Files/sec: %.1f)\n"), 
 	   $#flist + 1, $elapsed, 
 	   ($#flist + 1) /$elapsed));
-
+    util::vprint(sprintf(_("  Possible(%d), (not) \$ALLOW_FILE(%d), \$DENY_FILE(%d), \$DENY_PATH(%d)\n"), 
+			 $Count_possible,$Count_allow_file, $Count_deny_file, $Count_deny_path));
+    util::vprint(sprintf(_("  \$MTIME too old(%d), \$MTIME too new(%d)\n"),
+			   $Count_too_old, $Count_too_new));
     return @flist;
 }