forked from Imagelibrary/rtems
These modifications were required by hand after running the script. In some cases, the file names did not match patterns. In others, the format of the file did not match any common patterns.
99 lines
2.1 KiB
Perl
99 lines
2.1 KiB
Perl
#!/usr/bin/perl
|
|
|
|
eval "exec /usr/local/bin/perl -S $0 $*"
|
|
if $running_under_some_shell;
|
|
|
|
require 'getopts.pl';
|
|
&Getopts("p:vh"); # help, pattern file, verbose,
|
|
|
|
if ($opt_h || ! $opt_p) {
|
|
print STDERR <<NO_MORE_HELP;
|
|
word-replace2
|
|
|
|
Replace *words* with patterns. Pattern file specifies which patterns
|
|
to replace on each line. All patterns are wrapped with perl \\b regexp
|
|
specifiers.
|
|
|
|
Usage: $0 [-v] -p pattern-file files to replace
|
|
|
|
-v -- possibly more verbose
|
|
-p file -- pattern file
|
|
-h -- help
|
|
|
|
anything else == this help message
|
|
|
|
Pattern file looks like this:
|
|
|
|
# Example:
|
|
# ignores all lines with beginning with # or not exactly 2 fields
|
|
_Dorky_Name rtems_dorky_name # comments, and blank lines are cool
|
|
_Dorky_Name2 rtems_dorky_name2 # comments, and blank lines are cool
|
|
NO_MORE_HELP
|
|
exit 0;
|
|
}
|
|
|
|
$verbose = $opt_v;
|
|
$pattern_file = $opt_p;
|
|
|
|
# make standard outputs unbuffered (so the '.'s come out ok)
|
|
$oldfh = select(STDERR); $| = 1; select($oldfh);
|
|
$oldfh = select(STDOUT); $| = 1; select($oldfh);
|
|
|
|
# pull in the patterns
|
|
open(PATTERNS, "<$pattern_file") ||
|
|
die "could not open $pattern_file: $!, crapped out at";
|
|
|
|
|
|
|
|
foreach (<PATTERNS>)
|
|
{
|
|
chop;
|
|
s/#.*//;
|
|
next if /^$/;
|
|
($orig, $new, $junk, @rest) = split;
|
|
next if ( ! $orig || ! $new || $junk); # <2 or >2 patterns
|
|
die "pattern appears 2x: '$orig' in '$pattern_file'--" if defined($patterns{$orig});
|
|
$patterns{$orig} = $new;
|
|
}
|
|
close PATTERNS;
|
|
# walk thru each line in each file
|
|
|
|
$infile = '-' ;
|
|
$outfile = '-' ;
|
|
|
|
if ( $#ARGV > -1 )
|
|
{
|
|
$infile = "@ARGV[0]" ;
|
|
shift @ARGV ;
|
|
}
|
|
|
|
if ( $#ARGV > -1 )
|
|
{
|
|
$outfile = "@ARGV[0]" ;
|
|
shift @ARGV ;
|
|
}
|
|
|
|
open (INFILE, "<$infile") ||
|
|
die "could not open input file $infile: $!";
|
|
$line = join('',<INFILE>) ;
|
|
close INFILE;
|
|
|
|
|
|
print STDERR "$outfile\t";
|
|
|
|
open (OUTFILE, ">$outfile") ||
|
|
die "could not open output file $outfile: $!";
|
|
|
|
foreach $key (keys %patterns)
|
|
{
|
|
if ( $line =~ s/\b$key\b/$patterns{$key}/ge )
|
|
{
|
|
print STDERR "." ;
|
|
}
|
|
}
|
|
|
|
print OUTFILE $line ;
|
|
|
|
print STDERR "\n";
|
|
close OUTFILE;
|