]> andersk Git - gssapi-openssh.git/blobdiff - openssh/fixpaths
Config file and man page changes for Usage Metrics.
[gssapi-openssh.git] / openssh / fixpaths
index 60a67990f173e053ed7bdd9da5a11c3d1955937e..7e4178e4a96753c4debff32e37a9b1a3bdd5c0c8 100755 (executable)
@@ -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 (<IN>) {
+    for $s (keys(%def)) {
+      s#$s#$def{$s}#;
+    } # for $s
+    print;
+  } # while <IN>
+} # for $f
 
-exit 0
+exit 0;
This page took 0.056313 seconds and 4 git commands to generate.