Line | |
---|
1 | #! /bin/sh
|
---|
2 |
|
---|
3 | # igawk --- like gawk but do @include processing
|
---|
4 | # Arnold Robbins, arnold@gnu.ai.mit.edu, Public Domain
|
---|
5 | # July 1993
|
---|
6 |
|
---|
7 | igs=${TMP:-/tmp}/igs$$
|
---|
8 | ige=${TMP:-/tmp}/ige$$
|
---|
9 |
|
---|
10 | if [ "$1" = debug ]
|
---|
11 | then
|
---|
12 | set -x
|
---|
13 | shift
|
---|
14 | else
|
---|
15 | # cleanup on exit, hangup, interrupt, quit, termination
|
---|
16 | #trap 'rm -f $igs $ige' 0 1 2 3 15
|
---|
17 | trap 'rm -f $igs $ige' 0 2 15
|
---|
18 | fi
|
---|
19 |
|
---|
20 | while [ $# -ne 0 ] # loop over arguments
|
---|
21 | do
|
---|
22 | case $1 in
|
---|
23 | --) shift; break;;
|
---|
24 |
|
---|
25 | -W) shift
|
---|
26 | set -- -W"$@"
|
---|
27 | continue;;
|
---|
28 |
|
---|
29 | -[vF]) opts="$opts $1 '$2'"
|
---|
30 | shift;;
|
---|
31 |
|
---|
32 | -[vF]*) opts="$opts '$1'" ;;
|
---|
33 |
|
---|
34 | -f) echo @include "$2" >> $igs
|
---|
35 | shift;;
|
---|
36 |
|
---|
37 | -f*) f=`echo "$1" | sed 's/-f//'`
|
---|
38 | echo @include "$f" >> $igs ;;
|
---|
39 |
|
---|
40 | -?file=*) # -Wfile or --file
|
---|
41 | f=`echo "$1" | sed 's/-.file=//'`
|
---|
42 | echo @include "$f" >> $igs ;;
|
---|
43 |
|
---|
44 | -?file) # get arg, $2
|
---|
45 | echo @include "$2" >> $igs
|
---|
46 | shift;;
|
---|
47 |
|
---|
48 | -?source=*) # -Wsource or --source
|
---|
49 | t=`echo "$1" | sed 's/-.source=//'`
|
---|
50 | echo "$t" >> $igs ;;
|
---|
51 |
|
---|
52 | -?source) # get arg, $2
|
---|
53 | echo "$2" >> $igs
|
---|
54 | shift;;
|
---|
55 |
|
---|
56 | -?version)
|
---|
57 | echo igawk: version 1.0 1>&2
|
---|
58 | gawk --version
|
---|
59 | exit 0 ;;
|
---|
60 |
|
---|
61 | -[W-]*) opts="$opts '$1'" ;;
|
---|
62 |
|
---|
63 | *) break;;
|
---|
64 | esac
|
---|
65 |
|
---|
66 | shift
|
---|
67 | done
|
---|
68 |
|
---|
69 | if [ ! -s $igs ]
|
---|
70 | then
|
---|
71 | if [ -z "$1" ]
|
---|
72 | then
|
---|
73 | echo igawk: no program! 1>&2
|
---|
74 | exit 1
|
---|
75 | else
|
---|
76 | echo "$1" > $igs
|
---|
77 | shift
|
---|
78 | fi
|
---|
79 | fi
|
---|
80 |
|
---|
81 | # at this point, $igs has the program
|
---|
82 | gawk -f igawk.awk $igs > $ige
|
---|
83 | eval gawk -f '$ige' $opts -- "$@"
|
---|
84 |
|
---|
85 | exit $?
|
---|
Note:
See
TracBrowser
for help on using the repository browser.