Home | History | Annotate | Line # | Download | only in route
      1 #!/bin/sh
      2 # $NetBSD: keywords.sh,v 1.11 2013/03/01 18:25:17 joerg 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 link
     33 llinfo
     34 lock
     35 lockrest
     36 mask
     37 monitor
     38 mtu
     39 net
     40 netmask
     41 nostatic
     42 prefixlen
     43 proto1
     44 proto2
     45 recvpipe
     46 reject
     47 rtt
     48 rttvar
     49 sa
     50 sendpipe
     51 show
     52 ssthresh
     53 static
     54 x25
     55 xns
     56 xresolve
     57 flushall
     58 nocloned
     59 nocloning
     60 noblackhole
     61 noreject
     62 mpls
     63 tag
     64 proxy
     65 _EOF_
     66 
     67 
     68 ################################################################
     69 # Setup
     70 ################################################################
     71 
     72 # This creates a stream of:
     73 #	keyword KEYWORD
     74 # (lower case, upper case).
     75 tr a-z A-Z < _keywords.t1 |
     76 paste _keywords.t1 - > _keywords.t2
     77 
     78 
     79 ################################################################
     80 # Generate the h file
     81 ################################################################
     82 exec > keywords.h
     83 
     84 echo '/* $'NetBSD'$ */
     85 
     86 /* WARNING!  This file was generated by keywords.sh  */
     87 
     88 extern struct keytab {
     89 	const char *kt_cp;
     90 	int	kt_i;
     91 } keywords[];
     92 
     93 ' # defines follow
     94 
     95 $awk '{
     96 	printf("#define\tK_%s\t%d\n", $2, NR);
     97 }' < _keywords.t2
     98 
     99 
    100 ################################################################
    101 # Generate the c file
    102 ################################################################
    103 exec > keywords.c
    104 
    105 echo '/* $'NetBSD'$ */
    106 
    107 /* WARNING!  This file was generated by keywords.sh  */
    108 
    109 #include "keywords.h"
    110 
    111 struct keytab keywords[] = {
    112 ' # initializers follow
    113 
    114 $awk '{
    115 	printf("\t{\"%s\", K_%s},\n", $1, $2);
    116 }' < _keywords.t2
    117 
    118 echo '	{0, 0}
    119 };
    120 ' # tail
    121 
    122 
    123 ################################################################
    124 # Cleanup
    125 ################################################################
    126 
    127 rm -f _keywords.t1 _keywords.t2
    128 exit 0
    129