#!/usr/local/bin/perl # $Id: irex-merge-merge.perl,v 3.0 1998/11/19 07:12:08 tsuchiya Exp $ # This file is part of IREX tools. # Please refer "Copyright file" at the root directory. # (C) IREX committee IREX実行委員会. All rights reserved. require 5.000; use lib ( "$ENV{IREX_ROOT}/IR_TOOLS/perl", "$ENV{IREX_ROOT}/perl" ); use IREX::Tougou qw( :parser :generator ); use File::Basename; $PROGRAM = basename( $0 ); #------------------------------------------------------------ # コマンドラインオプションの解析 #------------------------------------------------------------ while( $_=shift(@ARGV) ){ if( /^-(h|\?|-help)$/ ){ &print_usage; } elsif( /^-(f|-file)$/ ){ $FILENAME = shift; } elsif( /^-(q|-quiet)$/ ){ $SILENT = 1; } else { push( @FILE,$_ ); } } unless( @FILE ){ push( @FILE,'STDIN' ); $STDIN = 1; } #------------------------------------------------------------ # 本体 #------------------------------------------------------------ for $f ( @FILE ){ if( $STDIN ){ @BUF = ; } else { open( FILE,"< $f" ) or warn( "Can't open file to read: $f\n" ), &print_usage; print STDERR "Reading $f\n" unless $SILENT; @BUF = ; close FILE; } print STDERR "Parsing $f ...\n" unless $SILENT; &parse()||die "Parse error occured: $f\n"; } #------------------------------------------------------------ # データを整列して出力 #------------------------------------------------------------ if( $FILENAME ){ ( ! -f $FILENAME )|| die "File is already exists: $FILENAME\nStop.\n"; open( FILE,"> $FILENAME" )||die "Can't open file to write: $FILENAME\n"; select FILE; print STDERR "Writing $FILENAME ...\n" unless $SILENT; } else { print STDERR "Sorting data ...\n" unless $SILENT; } for $topic_id ( &topic_id_list() ){ print STDERR " = $topic_id\n" unless $SILENT; &generate( $topic_id ); } if( $FILENAME ){ close FILE; select STDOUT; } #------------------------------------------------------------ # 簡易ヘルプ #------------------------------------------------------------ sub print_usage { die <<"__END_OF_USAGE__"; Usage: $PROGRAM tougou_1 tougou_2 ... tougou_n 複数の IREX 結果統合ファイル tougou_1 tougou_2 ... tougou_n をマー ジして、1つの結果統合ファイルを生成して、標準出力に出力する。入力 ファイルを指定しなかった場合は、標準入力からデータを取り出す。 -q オプションを指定しなければ、処理の進行状況を標準エラー出力に出 力する。 __END_OF_USAGE__ }