Blame pc/awklib/igawk

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 $?