OSDN Git Service

bzip2 1.0.8: Update sources.
[linuxjm/jm.git] / admin / cvs2upd
1 #! /usr/bin/perl
2 #
3 # パッケージ原文が更新されたときに、
4 # translation_list を更新するために upd_tl.perl に与える
5 # 設定ファイルを作成するスクリプト
6 #
7 # original/ ディレクトリ以下にファイルを揃え、cvs add や
8 # cvs remove を実行して、cvs commit を実行する前に、
9 # original/ ディレクトリ上で cvs -q upd した結果を標準入力から
10 # 与えてください。
11 # 結果は標準出力に出力するので、適当にリダイレクトして下さい。
12 #
13 # 結果にはささいな変更も含まれますので、実際にはそれらに
14 # 手動で対応した後、結果の該当部分を手動で削除してから
15 # upd_tl.perl を使うことになると思います。
16 #
17 # BUG:
18 # ゴミを出力することがあります。手動で削除してください。
19 #
20
21 sub cvfn()
22 {
23         my($fn) = @_;
24         if($fn =~ m@man./([-.\w]+)\.(\d)$@){
25                 return "$1:$2";
26         } else {
27                 return '';
28         }
29 }
30
31 sub getdate()
32 {
33         my($fn) = @_;
34         my($input,$date);
35         open F, "<$fn";
36         while ($input = <F>) {
37                 if ($input =~ /^\.TH [^ ]+ +[1-8] +\"?([0-9]+)\-([0-9]+)\-([0-9]+)\"? /) {
38                         $date = $1 . "/" . $2 . "/" . $3;
39                 }
40         }
41         close F;
42         if ($date) {
43                 return $date;
44         } else {
45                 return "0000/00/00";
46         }
47 }
48
49 while(<>){
50         s/[\r\n]*$//;
51         my($mode, $fn) = split;
52         if($mode eq 'A'){
53                 open F, "<$fn";
54                 $top = <F>;
55                 close F;
56                 if($top =~ /^.so ([-\w]+)/i){
57                         print 'L ' . &cvfn($fn) . ' ' . &cvfn($top) . "\n";
58                 } else {
59                         print 'A ' . &cvfn($fn) . " " . &getdate($fn) . "\n";
60                 }
61         }
62         if($mode eq 'M'){
63                 open F, "<$fn";
64                 $top = <F>;
65                 close F;
66                 if($top =~ /^.so ([-\w]+)/i){
67                         print 'L ' . &cvfn($fn) . ' ' . &cvfn($top) . "\n";
68                 } else {
69                         print 'U ' . &cvfn($fn) . " " . &getdate($fn) . "\n";
70                 }
71         }
72         if($mode eq 'R'){
73                 print 'R ' . &cvfn($fn) . "\n";
74         }
75 }