diff options
Diffstat (limited to 'other/openssh-reverse/fixpaths')
| -rwxr-xr-x | other/openssh-reverse/fixpaths | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/other/openssh-reverse/fixpaths b/other/openssh-reverse/fixpaths new file mode 100755 index 0000000..4badd98 --- /dev/null +++ b/other/openssh-reverse/fixpaths | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #!/usr/bin/perl -w | ||
| 2 | # | ||
| 3 | # fixpaths - substitute makefile variables into text files | ||
| 4 | |||
| 5 | |||
| 6 | $usage = "Usage: $0 [-x<file dot-suffix>] [-Dstring=replacement] [[infile] ...]\n"; | ||
| 7 | |||
| 8 | $ext="out"; | ||
| 9 | |||
| 10 | if (!defined(@ARGV)) { die ("$usage"); } | ||
| 11 | |||
| 12 | # read in the command line and get some definitions | ||
| 13 | while ($_=$ARGV[0], /^-/) { | ||
| 14 | if (/^-[Dx]/) { | ||
| 15 | # definition | ||
| 16 | shift(@ARGV); | ||
| 17 | if ( /-D(.*)=(.*)/ ) { | ||
| 18 | $def{"$1"}=$2; | ||
| 19 | } elsif ( /-x\s*(\w+)/ ) { | ||
| 20 | $ext=$1; | ||
| 21 | } else { | ||
| 22 | die ("$usage$0: error in command line arguments.\n"); | ||
| 23 | } | ||
| 24 | } else { | ||
| 25 | @cmd = split(//, $ARGV[0]); $opt = $cmd[1]; | ||
| 26 | die ("$usage$0: unknown option '-$opt'\n"); | ||
| 27 | } | ||
| 28 | } # while parsing arguments | ||
| 29 | |||
| 30 | if (!defined(%def)) { | ||
| 31 | die ("$0: nothing to do - no substitutions listed!\n"); | ||
| 32 | } | ||
| 33 | |||
| 34 | for $f (@ARGV) { | ||
| 35 | |||
| 36 | $f =~ /(.*\/)*(.*)$/; | ||
| 37 | $of = $2.".$ext"; | ||
| 38 | |||
| 39 | open(IN, "<$f") || die ("$0: input file $f missing!\n"); | ||
| 40 | if (open(OUT, ">$of")) { | ||
| 41 | while (<IN>) { | ||
| 42 | for $s (keys(%def)) { | ||
| 43 | s#$s#$def{$s}#; | ||
| 44 | } # for $s | ||
| 45 | print OUT; | ||
| 46 | } # while <IN> | ||
| 47 | } # if (outfile open) | ||
| 48 | } # for $f | ||
| 49 | |||
| 50 | exit 0; | ||
