#!/usr/bin/perl

use strict;
use File::Find;
my  $tmp="___temporary_file___";  #作業用に作るファイルの名前


#====== 次のリストに従ってヘッダーファイル名を変更 ============
my %FromTo=(
"control.h"=>"control_.h", 
"graphic.h"=>"graphic_.h", 
"plane.h"=>"plane_.h", 
"simple.h"=>"simple_.h"); 
#==============================================================


#ディレクトリXRSがなければエラー終了。
if(!-d "./XRS"){ 
   print STDERR "This command should be executed in XRS source directory\n";
   exit;
}

#XRS内のファイル名の変更と、文字置換用のperlスクリプトの生成
my $script="perl -npe '";
foreach my $f(keys %FromTo){
    #ファイル名変更
    if(-f "./XRS/$f"){  
       my $command="mv ./XRS/$f ./XRS/$FromTo{$f}"; 
       print STDERR $command,"\n"; 
       system($command); 
    }
    #スクリプト生成
    $script.="s/".$f."/".$FromTo{$f}."/; ";
}
$script.="' ";


#カレントディレクトリ以下のすべてのファイル名を取得して wanted を実行
my @dirs=("./");
find(\&wanted,@dirs);

sub wanted{
   my $f=$File::Find::dir."/".$_;    #見つけたファイル名
   #通常ファイルで、このプログラム以外なら文字置換を実行
   if(-f $f && !($f=~/$0/)){            
      my $command="$script $f>$tmp"; 
      print STDERR $command,"\n";
      system($command);
      print STDERR "rename $tmp,$f\n";
      rename $tmp,$f;
   }
}














