Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (53 sloc) 1.48 KB
#!/usr/bin/perl -w
# relocate.pl
#
# Rewrite pathnames or other values that need to be hardcoded in
# files. Take a commented line, remove the leading hash character,
# substitute for the variable inside ~_~HERE~_~, and place the
# result on the line above the comment, like this:
=for example
Original:
#use lib '~_~INSTALLPRIVLIB~_~';
Output:
use lib '/home/jon/interchange/lib';
#use lib '~_~INSTALLPRIVLIB~_~';
=cut
# If the leading comment starts with #- then the output of the original
# commented line will be suppressed.
=for example
Original:
#-use lib '~_~INSTALLPRIVLIB~_~';
Output:
use lib '/home/jon/interchange/lib';
=cut
# A single output filename can be specified on the command line, and
# the input filename will be the same, with a .PL extension added.
# If no filename is given, just filter from stdin to stdout.
use strict;
use Config;
require './scripts/initp.pl';
sub doit {
my ($key) = @_;
my $val;
if ($MV::Self->{RPMBUILDDIR} and $val = $MV::Self->{$key}) {
$val =~ s!^$MV::Self->{RPMBUILDDIR}/!/!;
return $val;
}
return $MV::Self->{$key} unless $key =~ /[a-z]/;
return $Config{$key};
}
no warnings 'void';
DOIT: {
my ($input, $output);
$output = $ARGV[0];
$input = "$output.PL" if $output;
local ($/);
@ARGV = ($input) if $input;
local ($_) = <>;
s{.*\n(#(-?)(.*)~_~(\w+)~_~(.*))}{$3 . doit($4) . $5 . ($2 ? '' : "\n$1" )}eg;
if ($output) {
open STDOUT, ">$output" or die "Error creating $output: $!\n";
}
print;
close STDOUT;
}
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.