Home | History | Annotate | Line # | Download | only in route
keywords.sh revision 1.10
      1 #!/bin/sh
      2 # $NetBSD: keywords.sh,v 1.10 2011/11/11 15:09:32 gdt Exp $
      3 # @(#)keywords	8.2 (Berkeley) 3/19/94
      4 #
      5 # WARNING!  If you change this file, re-run it!
      6 
      7 # This program requires "new" awk (or GNU awk).
      8 awk=${AWK:-awk}
      9 
     10 cat << _EOF_ > _keywords.t1
     11 add
     12 atalk
     13 blackhole
     14 change
     15 cloned
     16 cloning
     17 delete
     18 dst
     19 expire
     20 flush
     21 gateway
     22 genmask
     23 get
     24 host
     25 hopcount
     26 iface
     27 interface
     28 ifa
     29 ifp
     30 inet
     31 inet6
     32 iso
     33 link
     34 llinfo
     35 lock
     36 lockrest
     37 mask
     38 monitor
     39 mtu
     40 net
     41 netmask
     42 nostatic
     43 osi
     44 prefixlen
     45 proto1
     46 proto2
     47 recvpipe
     48 reject
     49 rtt
     50 rttvar
     51 sa
     52 sendpipe
     53 show
     54 ssthresh
     55 static
     56 x25
     57 xns
     58 xresolve
     59 flushall
     60 nocloned
     61 nocloning
     62 noblackhole
     63 noreject
     64 mpls
     65 tag
     66 proxy
     67 _EOF_
     68 
     69 
     70 ################################################################
     71 # Setup
     72 ################################################################
     73 
     74 # This creates a stream of:
     75 #	keyword KEYWORD
     76 # (lower case, upper case).
     77 tr a-z A-Z < _keywords.t1 |
     78 paste _keywords.t1 - > _keywords.t2
     79 
     80 
     81 ################################################################
     82 # Generate the h file
     83 ################################################################
     84 exec > keywords.h
     85 
     86 echo '/* $'NetBSD'$ */
     87 
     88 /* WARNING!  This file was generated by keywords.sh  */
     89 
     90 extern struct keytab {
     91 	const char *kt_cp;
     92 	int	kt_i;
     93 } keywords[];
     94 
     95 ' # defines follow
     96 
     97 $awk '{
     98 	printf("#define\tK_%s\t%d\n", $2, NR);
     99 }' < _keywords.t2
    100 
    101 
    102 ################################################################
    103 # Generate the c file
    104 ################################################################
    105 exec > keywords.c
    106 
    107 echo '/* $'NetBSD'$ */
    108 
    109 /* WARNING!  This file was generated by keywords.sh  */
    110 
    111 #include "keywords.h"
    112 
    113 struct keytab keywords[] = {
    114 ' # initializers follow
    115 
    116 $awk '{
    117 	printf("\t{\"%s\", K_%s},\n", $1, $2);
    118 }' < _keywords.t2
    119 
    120 echo '	{0, 0}
    121 };
    122 ' # tail
    123 
    124 
    125 ################################################################
    126 # Cleanup
    127 ################################################################
    128 
    129 rm -f _keywords.t1 _keywords.t2
    130 exit 0
    131