in reply to Re: Java Repackager...
in thread Java Repackager...
rjeuse Win32; use Cwd; print<<EOTitle; ##################################################################### # # Rob's package cloner # # Clones entire packages. # ##################################################################### EOTitle my $source = Win32::GetCwd; my $sourcePackage; my $dest = Win32::GetCwd; my $destPackage; my $oldSub; my $newSub; my @files; $sourcePackage = $1 if $source =~ /^.*\\(com\\nortel\\ipc.*)$/; $sourcePackage =~ s/\\/\./g; print "The script has found this package to clone: $sourcePackage\n"; $oldSub = &query( 'Which part of the package name is changing?' ); $newSub = &query( 'What is that part changing to? ' ); $destPackage = $sourcePackage; $destPackage =~ s/$oldSub/$newSub/; $dest =~ s/$sourcePackage/$destPackage/; $dest =~ s/\./\\/g; print "\n Cloning\n package $sourcePackage into\n package $de +stPackage\n"; print "\n Using these directories:\n $source and\n $dest\n"; unless ( &query( "\nOkay?" ) =~ /[YKyk]/ ) { die "Okay. Script aborted.\n"; } mkdir $dest, 0777; print Win32::GetCwd; print "\nCopying package files...\n\n"; system( "xcopy *.java $dest\\" ); print "\ndone.\n"; chdir $dest; print Win32::GetCwd; print "\nEditing package files...\n\n"; @files = <*.java>; foreach ( @files ) { print "$_\n"; &checkFile( $_ ); } print "\ndone.\n"; print "\nScript done.\n"; sub query { my ($question) = @_; my $reply; print "$question "; chomp( $reply = <STDIN> ); return $reply; } sub checkFile { my ($file) = @_; open( IN, $file ) || (print STDERR "ERROR: cannot read $file\n", ne +xt); my @data = <IN>; close IN; foreach ( @data ) { if (/^\s*package\s*$sourcePackage\s*;$/) { print " - repackaged: old: $_"; $_ = "package $destPackage;\n"; print " new: $_"; } if ( /^\s*import\s*/ && /$oldSub/) { print " - import fixed: old: $_"; s/$oldSub/$newSub/; print " new: $_"; } } open( OUT, ">$file" ) || (print STDERR "ERROR: cannot write $file\n +", next); print OUT @data; close OUT; }
|
|---|