Blame pc/awklib/igawk

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