|
Packit Service |
f629e6 |
#! /bin/sh
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# igawk --- like gawk but do @include processing
|
|
Packit Service |
f629e6 |
# Arnold Robbins, arnold@gnu.ai.mit.edu, Public Domain
|
|
Packit Service |
f629e6 |
# July 1993
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
igs=${TMP:-/tmp}/igs$$
|
|
Packit Service |
f629e6 |
ige=${TMP:-/tmp}/ige$$
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
if [ "$1" = debug ]
|
|
Packit Service |
f629e6 |
then
|
|
Packit Service |
f629e6 |
set -x
|
|
Packit Service |
f629e6 |
shift
|
|
Packit Service |
f629e6 |
else
|
|
Packit Service |
f629e6 |
# cleanup on exit, hangup, interrupt, quit, termination
|
|
Packit Service |
f629e6 |
#trap 'rm -f $igs $ige' 0 1 2 3 15
|
|
Packit Service |
f629e6 |
trap 'rm -f $igs $ige' 0 2 15
|
|
Packit Service |
f629e6 |
fi
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
while [ $# -ne 0 ] # loop over arguments
|
|
Packit Service |
f629e6 |
do
|
|
Packit Service |
f629e6 |
case $1 in
|
|
Packit Service |
f629e6 |
--) shift; break;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-W) shift
|
|
Packit Service |
f629e6 |
set -- -W"$@"
|
|
Packit Service |
f629e6 |
continue;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-[vF]) opts="$opts $1 '$2'"
|
|
Packit Service |
f629e6 |
shift;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-[vF]*) opts="$opts '$1'" ;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-f) echo @include "$2" >> $igs
|
|
Packit Service |
f629e6 |
shift;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-f*) f=`echo "$1" | sed 's/-f//'`
|
|
Packit Service |
f629e6 |
echo @include "$f" >> $igs ;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-?file=*) # -Wfile or --file
|
|
Packit Service |
f629e6 |
f=`echo "$1" | sed 's/-.file=//'`
|
|
Packit Service |
f629e6 |
echo @include "$f" >> $igs ;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-?file) # get arg, $2
|
|
Packit Service |
f629e6 |
echo @include "$2" >> $igs
|
|
Packit Service |
f629e6 |
shift;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-?source=*) # -Wsource or --source
|
|
Packit Service |
f629e6 |
t=`echo "$1" | sed 's/-.source=//'`
|
|
Packit Service |
f629e6 |
echo "$t" >> $igs ;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-?source) # get arg, $2
|
|
Packit Service |
f629e6 |
echo "$2" >> $igs
|
|
Packit Service |
f629e6 |
shift;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-?version)
|
|
Packit Service |
f629e6 |
echo igawk: version 1.0 1>&2
|
|
Packit Service |
f629e6 |
gawk --version
|
|
Packit Service |
f629e6 |
exit 0 ;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
-[W-]*) opts="$opts '$1'" ;;
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
*) break;;
|
|
Packit Service |
f629e6 |
esac
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
shift
|
|
Packit Service |
f629e6 |
done
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
if [ ! -s $igs ]
|
|
Packit Service |
f629e6 |
then
|
|
Packit Service |
f629e6 |
if [ -z "$1" ]
|
|
Packit Service |
f629e6 |
then
|
|
Packit Service |
f629e6 |
echo igawk: no program! 1>&2
|
|
Packit Service |
f629e6 |
exit 1
|
|
Packit Service |
f629e6 |
else
|
|
Packit Service |
f629e6 |
echo "$1" > $igs
|
|
Packit Service |
f629e6 |
shift
|
|
Packit Service |
f629e6 |
fi
|
|
Packit Service |
f629e6 |
fi
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# at this point, $igs has the program
|
|
Packit Service |
f629e6 |
gawk -f igawk.awk $igs > $ige
|
|
Packit Service |
f629e6 |
eval gawk -f '$ige' $opts -- "$@"
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
exit $?
|