forked from arichardson/openssh-portable
-
Notifications
You must be signed in to change notification settings - Fork 1
/
fixpaths
executable file
·43 lines (34 loc) · 907 Bytes
/
fixpaths
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/perl -w
#
# fixpaths - substitute makefile variables into text files
$usage = "Usage: $0 [-Dstring=replacement] [[infile] ...]\n";
if (!defined(@ARGV)) { die ("$usage"); }
# read in the command line and get some definitions
while ($_=$ARGV[0], /^-/) {
if (/^-D/) {
# definition
shift(@ARGV);
if ( /-D(.*)=(.*)/ ) {
$def{"$1"}=$2;
} else {
die ("$usage$0: error in command line arguments.\n");
}
} else {
@cmd = split(//, $ARGV[0]); $opt = $cmd[1];
die ("$usage$0: unknown option '-$opt'\n");
}
} # while parsing arguments
if (!defined(%def)) {
die ("$0: nothing to do - no substitutions listed!\n");
}
for $f (@ARGV) {
$f =~ /(.*\/)*(.*)$/;
open(IN, "<$f") || die ("$0: input file $f missing!\n");
while (<IN>) {
for $s (keys(%def)) {
s#$s#$def{$s}#;
} # for $s
print;
} # while <IN>
} # for $f
exit 0;