Revert "serv_rssclient.c: style update"
[citadel.git] / webcit / scripts / get_ical_data.sh
1 #!/bin/sh
2
3 echo Running $0
4
5 # Find our copy of sed , it might be called "gsed" on FreeBSD
6 if gsed --version >/dev/null 2>&1 ; then
7         SED=`which gsed`
8 elif sed --version >/dev/null 2>&1 ; then
9         SED=`which sed`
10 else
11         sed: not found
12         exit 1
13 fi
14
15 echo sed is ${SED}
16
17
18 ICAL=/usr/local/ctdlsupport/include/libical/ical.h
19 if test -f /usr/include/libical/ical.h; then 
20     ICAL=/usr/include/libical/ical.h
21 elif test -f /usr/local/include/libical/ical.h; then
22         ICAL=/usr/local/include/libical/ical.h
23 fi
24
25 if test ! -f ${ICAL}; then 
26     echo "failed to locate libical headers - please install the libical development packages or heardes"
27     exit 500
28 fi
29
30 ICALTYPES="icalproperty_kind"\
31 " icalcomponent_kind"\
32 " icalrequeststatus"\
33 " ical_unknown_token_handling"\
34 " icalrecurrencetype_frequency"\
35 " icalrecurrencetype_weekday"\
36 " icalvalue_kind"\
37 " icalproperty_action"\
38 " icalproperty_carlevel"\
39 " icalproperty_class"\
40 " icalproperty_cmd"\
41 " icalproperty_method"\
42 " icalproperty_querylevel"\
43 " icalproperty_status"\
44 " icalproperty_transp"\
45 " icalproperty_xlicclass"\
46 " icalparameter_kind"\
47 " icalparameter_action"\
48 " icalparameter_cutype"\
49 " icalparameter_enable"\
50 " icalparameter_encoding"\
51 " icalparameter_fbtype"\
52 " icalparameter_local"\
53 " icalparameter_partstat"\
54 " icalparameter_range"\
55 " icalparameter_related"\
56 " icalparameter_reltype"\
57 " icalparameter_role"\
58 " icalparameter_rsvp"\
59 " icalparameter_value"\
60 " icalparameter_xliccomparetype"\
61 " icalparameter_xlicerrortype"\
62 " icalparser_state"\
63 " icalerrorenum"\
64 " icalerrorstate"\
65 " icalrestriction_kind"
66
67 (
68     printf '#include "webcit.h"\n\n\n'
69
70     for icaltype in $ICALTYPES; do 
71         printf "typedef struct _Ical_${icaltype} {\n"\
72 "       const char *Name;\n"\
73 "       long NameLen;\n"\
74 "       ${icaltype} map;\n"\
75 "} Ical_${icaltype};\n\n\n"
76
77     done
78
79     for icaltype in $ICALTYPES; do 
80         cat ./scripts/get_ical_data__template.sed | \
81             ${SED} -e "s;__ICALTYPE__;$icaltype;g" > \
82             /tmp/get_ical_data.sed
83     
84         printf "Ical_${icaltype} ${icaltype}_map[] = {\n"
85         cat ${ICAL} |\
86 ${SED} -e 's;/\*.*\*/;;' -e 's;\t;;g' |\
87 ${SED} -nf /tmp/get_ical_data.sed |\
88 ${SED} -e "s;.*typedef *enum *${icaltype} *{\(.*\)} ${icaltype} *\;.*;\1,;" \
89             -e 's;/\*.*\*/;;' \
90             -e 's;/;\n/\n;g' \
91             -e 's;,;,\n;g' \
92             -e 's; *;;g' \
93             -e 's;^t*;;g' \
94             -e 's;\=[0-9]*;;g'|\
95 ${SED} -e 's;\(.*\),;{HKEY("\1"), \1},;'
96         printf '{"", 0, 0}\n};\n\n\n' 
97         
98     done
99
100
101     printf "void \nInitModule_ICAL_MAPS\n(void)\n{\n\tint i;\n"
102     for icaltype in $ICALTYPES; do 
103         printf "\tfor (i=0; ${icaltype}_map[i].NameLen > 0; i++)\n"\
104 "               RegisterTokenParamDefine (\n"\
105 "                       ${icaltype}_map[i].Name,\n"\
106 "                       ${icaltype}_map[i].NameLen,\n"\
107 "                       ${icaltype}_map[i].map);\n"\
108
109     done
110     printf "\n}\n\n"
111
112 ) > ical_maps.c