X-Git-Url: http://andersk.mit.edu/gitweb/gssapi-openssh.git/blobdiff_plain/6a9b319871ee85eeada2a0511e9436d0bfa6aab8..c8b33f201dc1568673002a11f4307700e502d0d6:/openssh/fixpaths?ds=sidebyside diff --git a/openssh/fixpaths b/openssh/fixpaths index 60a6799..7e4178e 100755 --- a/openssh/fixpaths +++ b/openssh/fixpaths @@ -1,22 +1,43 @@ -#!/bin/sh +#!/usr/bin/perl -w # # fixpaths - substitute makefile variables into text files -# Usage: fixpaths -Dsomething=somethingelse ... -die() { - echo $* - exit -1 -} -test -n "`echo $1|grep -- -D`" || \ - die $0: nothing to do - no substitutions listed! +$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"); +} -test -n "`echo $1|grep -- '-D[^=]\+=[^ ]\+'`" || \ - die $0: error in command line arguments. +for $f (@ARGV) { -test -n "`echo $*|grep -- ' [^-]'`" || \ - die Usage: $0 '[-Dstring=replacement] [[infile] ...]' + $f =~ /(.*\/)*(.*)$/; -sed `echo $*|sed -e 's/-D\([^=]\+\)=\([^ ]*\)/-e s=\1=\2=g/g'` + open(IN, "<$f") || die ("$0: input file $f missing!\n"); + while () { + for $s (keys(%def)) { + s#$s#$def{$s}#; + } # for $s + print; + } # while +} # for $f -exit 0 +exit 0;