OSDN Git Service

Update copyright year
[linuxjf/JF.git] / bin / mkcontriblist.pl
1 #! /usr/bin/perl
2
3 # JF ¤Î Berkeley DB ¥Õ¥¡¥¤¥ë¤òÆɤó¤Ç¡¢¥ê¥¹¥È¤ò½ÐÎϤ¹¤ë¤¿¤á¤Î
4 # ¥¹¥¯¥ê¥×¥È¡£
5 # Fujiwara ¤µ¤ó¤Î½ñ¤¤¤¿¥¹¥¯¥ê¥×¥È¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤ë¡£
6 #
7 # -d: ·ë¹ç¤¹¤ë Berkeley DB file ¤Î̾Á°
8 # -t: output format type (HTML or TEXT)
9 # -w: jf.css ¤ò»²¾È¤¹¤ë HTML ¤ò½ÐÎÏ (JF ¤Î Web Page ÍÑ INDEX ¤ò½ÐÎϤ¹¤ë¤È¤­)
10 #
11
12 use strict 'vars';
13 use strict 'subs';
14 use strict 'refs';
15 use vars qw(%opts);
16 use DB_File;
17 use lib qw(bin);
18 use jfadmlib qw(:DEFAULT :LOCKS);
19 use Getopt::Std;
20
21 getopts('t:d:c:p:w', \%opts);
22 die    unless ($opts{'d'} || $opts{'t'});
23 my $database = $opts{'d'} if $opts{'d'};
24 my $type     = $opts{'t'} if $opts{'t'};
25
26 ###############################################
27 # my @project = ('LILO-doc', 'LTGP');
28 my @project = ('LILO-doc');
29 my $description = {
30                    'LILO-doc' => "Linux Install Learning Osaka",
31                    'LTGP' => "Linux Total Guide Project",
32 };
33 ###############################################
34
35 my $www = 0;
36 $www = 1 if $opts{'w'};  
37
38 #
39 # get time data
40 #
41 my @t = &get_timelist(time);
42
43
44 #
45 # tie database object to hash, and lock it.
46 #
47 my ($H, %index);
48 $H = tie(%index, 'DB_File', "$database", O_RDONLY, 0644, $DB_BTREE) or die;
49
50 #
51 # output header
52 #
53 if ($type eq "HTML") {
54     &print_html_header($www);
55     print "<H2><A NAME=\"JFLIST\">JF ¤Ë´ó£¤µ¤ì¤¿¥É¥­¥å¥á¥ó¥È¤Î¥ê¥¹¥È</A></H2>\n";
56 } else {
57     print "JF ¤Ë´ó£¤µ¤ì¤¿¥É¥­¥å¥á¥ó¥È¤Î¥ê¥¹¥È\n\n";
58 }
59
60 #
61 # output datas.
62 #
63 foreach my $p (@project) {
64     if ($type eq "HTML") {
65         print "<H3><A NAME=\"$p\">$p ($description->{$p}) ¤Îʸ½ñ</A></H3>\n";
66         print "<DL>\n";
67     } else {
68         print "\n== $p ($description->{$p}) ¤Îʸ½ñ == \n\n";
69     }
70
71     &pickup($p, \%index, $H, $type);
72     print "</DL>\n" if $type eq "HTML";
73 }
74
75 &print_html_footer($www,\@t) if $type eq "HTML";  
76
77 #
78 # untie index.
79 #
80 undef $H;
81 untie %index;
82 exit;
83 #
84 # end of main procedure
85 #
86
87 sub pickup
88 {
89     my ($proj, $index, $H, $type) = @_;
90     foreach my $key (keys %$index) {
91         next unless $key =~ /\@\@ITEM$/;
92         my ($name, $dummy) = split("\@\@", $key);
93         my $KIND = get_ent($H, $name, "KIND");
94         next unless $KIND eq $proj;
95         my $CONT = get_ent($H, $name, "CONT");
96         my $JDAT = get_ent($H, $name, "JDAT");
97         my $TITL = get_ent($H, $name, "TITL");
98         my (@AUT, @TRN);
99         $AUT[0]  = get_ent($H, $name, "AUTH");
100         $AUT[1]  = get_ent($H, $name, "AUT2");
101         $AUT[2]  = get_ent($H, $name, "AUT3");
102         $TRN[0]  = get_ent($H, $name, "TRNS");
103         $TRN[1]  = get_ent($H, $name, "TRN2");
104         $TRN[2]  = get_ent($H, $name, "TRN3");
105         foreach (@AUT, @TRN) {
106             s/<.*>//;
107             s/\s+$//;
108         }
109         $CONT    = "unrecorded" unless $CONT;
110         $JDAT    = "unrecorded" unless $JDAT;
111         if ($type eq "HTML") {
112             &print_html_data($name, $KIND, $CONT, $JDAT, $TITL, \@AUT, \@TRN);
113         } else {
114             &print_text_data($name, $KIND, $CONT, $JDAT, $TITL, \@AUT, \@TRN);
115         }
116     }
117 }
118
119 sub print_html_data {
120     my ($name, $KIND, $CONT, $JDAT, $TITL, $AUT, $TRN) = @_;
121     if (-f "$KIND/$name.html") {
122         print "<DT><A HREF=\"$KIND/$name.html\"><STRONG>$TITL</STRONG></A>\n";
123     } else {
124         print "<DT><STRONG>$TITL</STRONG>\n";
125     }
126     print "  <SMALL>($JDAT)</SMALL>\n";
127     print "  <DD>$CONT\n      <SMALL>\n";
128     print "      [<A HREF=\"$KIND/$name.txt\">¥Æ¥­¥¹¥ÈÈÇ</A>]\n" if (-f "$KIND/$name.txt"); 
129     print "      <BR>\n";
130     print "      Ãø¼Ô: $AUT->[0]\n" if $AUT->[0];
131     print "          , $AUT->[1]\n" if $AUT->[1];
132     print "          , $AUT->[2]\n" if $AUT->[2];
133     print "      ËÝÌõ: $TRN->[0]\n" if $TRN->[0];
134     print "          , $TRN->[1]\n" if $TRN->[1];
135     print "          , $TRN->[2]\n" if $TRN->[2];
136     print "      </SMALL></DD>\n";
137 }
138
139
140 sub print_text_data {
141     my ($name, $KIND, $CONT, $JDAT, $TITL, $AUT, $TRN) = @_;
142     my $filename;
143     if (-f "$KIND/$name.txt") {
144         $filename = $name . ".txt";
145     } elsif (-f "$KIND/$name.sgml") {
146         $filename = $name . ".sgml";
147     }
148
149     format STDOUT =
150  Filename: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Updated: @<<<<<<<<<
151            $filename,                                               $JDAT
152  Title:    @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
153            $TITL
154  Description: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
155            $CONT
156 .
157
158     write if $filename;  
159     print " Author:   $AUT->[0]"   if $AUT->[0];
160     print ", $AUT->[1]"            if $AUT->[1];
161     print ", $AUT->[2]"            if $AUT->[2];
162     print "\n"                     if $AUT->[0];
163     print " Translator: $TRN->[0]" if $TRN->[0];
164     print ", $TRN->[1]"            if $TRN->[1];
165     print ", $TRN->[2]"            if $TRN->[2];
166     print "\n"                     if $TRN->[0];
167     print "\n";
168
169 }
170
171
172 sub print_html_header {
173     my $www = $_[0];
174 print <<"-HEADER-ONE-";
175 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
176   "http://www.w3.org/TR/html4/loose.dtd">
177 <html lang="ja" dir="ltr">
178 <head>
179  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
180  <title>JF-INDEX: ³°Éô Project ¤«¤é¤Î´ó£ʸ½ñ</title>
181  <meta name="author" lang="en" content="JF Project Members">
182  <meta name="copyright" content="(C) 1998-2014 JF Project.">
183  <meta name="description" content="Linux ¤Ë´Ø¤¹¤ë²òÀâʸ½ñ¡¦FAQ ¤Ê¤É¤òºîÀ®¡¦¼ý½¸¡¦ÇÛÉÛ¤¹¤ë JF Project ¤Îʸ½ñ°ìÍ÷¤Ç¤¹¡£">
184  <meta name="keywords" content="JF,Linux,Japanese,ʸ½ñ,¥É¥­¥å¥á¥ó¥È,ËÝÌõ,HOWTO,FAQ">
185  <link rev="made" href="mailto:jf\@listserv.linux.or.jp">
186 -HEADER-ONE-
187
188   print " <LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"../jf.css\">\n"
189     if $www;
190
191 print <<"-HEADER-TWO-";
192 </HEAD>
193
194 <body>
195
196 -HEADER-TWO-
197
198     if ($www) {
199         print "<h1><a href=\"../index.html\">JF</a>: Index</h1>";
200     } else {
201         print "<h1>JF-INDEX</h1>";
202     }
203
204 }
205
206 sub print_html_footer {
207     my ($www, $t) = @_;
208     print <<"-FOOTER-ONE-";
209 <HR>
210  <ADDRESS>
211   JF Project Á´È̤˴ؤï¤ë¤´°Õ¸«¤´Í×˾¤Ï
212   jf\@listserv.linux.or.jp ¤Þ¤Ç¤ª¤Í¤¬¤¤¤·¤Þ¤¹¡£
213  </ADDRESS>
214 -FOOTER-ONE-
215
216     print <<"-FOOTER-WWW-" if $www;
217  <DIV CLASS="copyright">
218   <A HREF="../index.html">JF Project ¥á¥¤¥ó¥Ú¡¼¥¸¤Ø</A></BR>
219  </DIV>
220 -FOOTER-WWW-
221   
222  print " <DIV CLASS=\"copyright\">\n" if $www;
223  print "¥ê¥¹¥È¹¹¿·Æü»þ: $t->[0]/$t->[1]/$t->[2] $t->[4]:$t->[5]:$t->[6]<BR>\n";
224  print " </DIV>\n" if $www;
225  print "\n</BODY>\n</HTML>\n";
226  return 1;
227 }
228
229 sub get_timelist() {
230   my ($sec,$min,$hour,$day,$month,$year,$wday,$yday,$isdst) = localtime($_[0]);
231   my @dow = ("Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat");
232   my $dow = $dow[$wday];
233   $month = $month + 1;
234   $month = 1 if $month == 13;
235   $month = "0" . $month if $month < 10;
236   $day   = "0" . $day   if $day   < 10;
237   $hour  = "0" . $hour  if $hour  < 10;
238   $min   = "0" . $min   if $min   < 10;
239   $sec   = "0" . $sec   if $sec   < 10;
240   $year += 1900;
241   return ($year, $month, $day, $dow, $hour, $min, $sec);
242 }
243 # Local variables:
244 # cperl-indent-level: 4
245 # End: