#! /usr/bin/perl
#
# 元パッケージで開発したJavaソースコードを、
# 先パッケージに自動変換します。
# ファイルの置場をパッケージの名前に合わせ、各ソースコードの
# パッケージ名を変更する処理も行います。
# 元サブディレクトリ
$srcroot = "C:/usr/java/projects/ushi";
# 先サブディレクトリ
$destpkgroot = "C:/usr/java/projects";
$destroot = "C:/usr/java/projects/sysut/jp/co/nsnhnkmmkk/osaka/sysut";
@srcdirs = ("jdbc", "jdbc/config", "common", "ldap", "util");
# 元パッケージ
$srcpkg = "ushi.";
# 先パッケージ
$destpkg = "jp.co.nsnhnkmmkk.osaka.sysut.";
sub p1 {
my($dir) = @_;
$glob = $srcroot . "/" . $dir . "/*.java";
# 下の{}は必須
@files = <${glob}>;
foreach $e (@files){
$e =~ /\/([^\/\.]+\.java)$/;
$tail = $1;
$newfile = $destroot . "/" . $dir . "/$tail";
# コピー先が存在し、コピー元より新しければスキップ
next if ((-f $newfile) && ((-M $e) >= (-M $newfile)));
# 全文変換で行います。
print STDERR "$e\n => $newfile\n";
open(INFILE, $e) || die $!;
open(OUTFILE, ">$newfile") || die $!;
while(<INFILE>){
s/$srcpkg/$destpkg/g;
print OUTFILE $_;
}
close(OUTFILE);
close(INFILE);
}
}
# ここからメイン
foreach $dir (@srcdirs){ & p1($dir); }
# end.
|