OSDN Git Service

move admin/ML-msgs to admin/legacy/ML-msgs
[linuxjf/JF.git] / bin / genindex.pl
1 #! /usr/bin/perl
2 # info ¥Õ¥¡¥¤¥ë·²¤«¤é¡¢database ¤òºîÀ®¤¹¤ë¥¹¥¯¥ê¥×¥È
3 # $Id: genindex.pl,v 1.5 2002/11/12 10:58:36 mdk Exp $
4 #
5 # Fujiwara ¤µ¤ó¤Î½ñ¤¤¤¿¥¹¥¯¥ê¥×¥È¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤ë¡£
6 #
7 # ·ë¹ç¤¹¤ë Berkeley DB file ¤Î̾Á°¤òÂè1°ú¿ô¤Ë¤¹¤ë¤³¤È¡£
8 # info ¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤¬¤½¤ì¤Ë³¤¯°ú¿ô¤Ë¤Ê¤ë¡£
9
10 use strict;
11 use vars;
12 use DB_File;
13 use lib qw(bin);
14 use jfadmlib qw(:DEFAULT :LOCKS);
15 use Jcode;
16
17 my $database = shift (@ARGV);
18
19 unlink $database;
20 my ($H, %index); $H = tie(%index, 'DB_File', "$database",
21                           O_RDWR|O_CREAT, 0644, $DB_BTREE) or die;
22 lockdb($H, LOCK_EX);
23
24 foreach my $file (@ARGV)
25 {
26     my %DBITEM;
27
28     if (!open(CL, $file)) {
29         print "Can't open.\n";
30         next;
31     }
32
33     while (<CL>) {
34         last if /DRAFT.NOINDEX/i;  
35         s/\s*#.*$//;
36         next if /^\s*$/;
37         Jcode::convert(\$_, 'euc');
38         if (/^(\w+):\s*(.*)$/) {
39             my ($key, $value) = ($1, $2);
40             $value =~ s/\s*$//;
41             $DBITEM{$key} = $value;
42         }
43     }
44     close CL;
45
46     if ($DBITEM{'NAME'}) {
47         my $name = $DBITEM{'NAME'};
48         foreach my $k (keys %DBITEM) {
49           jfadmlib::add_ent($H, $name, $k, $DBITEM{$k});
50         }
51
52     } else {
53         print STDERR "$file has no NAME field. (ignored)\n";
54         next;
55     }
56     undef %DBITEM;
57 }
58
59 unlockdb;
60 undef $H;
61 untie %index;
62
63 # Local variables:
64 # cperl-indent-level: 4
65 # End: