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