Added lirc.
[irreco.git] / lirc-0.8.4a / data2setup.sh
blob2c27a861f23f32afd8f43ebd3dcb42254ec15a4e
1 #! /bin/bash
3 echo "# this file was generated by calling $0 $@"
4 echo "# DO NOT EDIT"
5 echo
7 setup_seq_init() {
8 local INDEX=1
9 local N
10 for N in 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s \
11 t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W \
12 X Y Z
14 LIRC_SETUP_NICE_SEQ[$INDEX]="$N"
15 INDEX=$(expr $INDEX + 1)
16 done
18 setup_seq_init
20 nice_seq() {
21 echo ${LIRC_SETUP_NICE_SEQ[$1]}
24 query_setup_data() {
25 local CONFIG_TEXT="$1"
26 local TITLE="$2"
27 local QUESTION="$3"
28 local DEVICE="$4"
29 unset NAMES; local NAMES
30 unset SEQ; local SEQ
31 local INDEXES=""
32 local NAME
33 TEMP=$(mktemp /tmp/lirc.XXXXXXXXXX)
34 FULL_ENTRY=$(sed -n \
35 -e ': start' \
36 -e 's/\\[ ]*$//' \
37 -e 't more' \
38 -e 'b cont' \
39 -e ': more' \
40 -e 'N' \
41 -e 'b start' \
42 -e ': cont' \
43 -e 's/\n[ ]*//g' \
44 -e '/^[ ]*#/d' \
45 -e "/^$QUESTION:.* $DEVICE\>\([^-]\|$\)/,/^ *$/p" \
46 setup.data)
47 HACKED_ENTRY=$(echo "$FULL_ENTRY" | sed \
48 -e "/^$QUESTION:/d" \
49 -e '/^ *$/d' \
50 -e 's/^[ ]*//' \
51 -e 's/:[ ]*/ DESC=/' \
52 -e 's/[ ]*$//' \
53 -e '/^TITLE=/p' \
54 -e '/^TITLE=/d' \
55 -e '/^CONFIG_TEXT=/p' \
56 -e '/^CONFIG_TEXT=/d' \
57 -e 's/^/NAME=/' )
58 echo "$HACKED_ENTRY" > "$TEMP"
59 exec < "$TEMP"
60 MENU=""
61 N=0
62 DEFAULT=""
63 read LINE
64 while [ -n "$LINE" ]
66 eval "$LINE"
68 ! expr "$LINE" : 'NAME' > /dev/null 2>&1
69 then
70 read LINE
71 continue
73 if [ -z "$DESC" ]; then
74 DEFAULT="$NAME"
75 else
76 N=$(expr $N + 1)
77 SEQ=$(nice_seq $N)
78 INDEXES="$INDEXES $SEQ"
79 MENU="$MENU \\
80 $SEQ \"$DESC\""
82 ! expr "$NAME" : '@' > /dev/null 2>&1
83 then
84 eval "SEQ_$NAME"="\"$SEQ\""
86 eval "NAME_$SEQ"="\"$NAME\""
88 read LINE
89 done
90 if [ $N -eq 0 ] && [ -z "$DEFAULT" ]; then
91 #Nothing found assume 'none' and return error.
92 echo none
93 rm $TEMP
94 return 1
95 elif [ $N -le 1 ]; then
96 #param_type or default_param entry
97 echo $DEFAULT
98 rm $TEMP
99 return
100 elif [ $N -gt 12 ]; then
101 #More than 12 items at once don't look good.
102 N=12
104 HEIGHT=$(expr $N + 7)
105 WIDTH=74
106 eval DEFAULT_ITEM="\$SEQ_$DEFAULT"
108 local INDENT="$INDENT "
109 cat <<EOF
110 ${INDENT}dialog --clear --backtitle "\$BACKTITLE" \\
111 ${INDENT} --title "$TITLE" \\
112 ${INDENT} --menu "\$$CONFIG_TEXT" $HEIGHT $WIDTH $N \\
113 ${INDENT} $MENU 2> \$TEMP
114 ${INDENT}if test "\$?" = "0"; then
117 local INDENT="$INDENT "
118 echo "${INDENT}{"
119 echo "${INDENT}set \`cat \$TEMP\`"
120 echo "${INDENT}if false; then :"
121 for N in $INDEXES
123 eval NAME="\$NAME_$N"
124 echo -n "${INDENT}"'elif test "$1" = "'"$N"'"; then '
126 expr "$NAME" : '@' > /dev/null 2>&1
127 then
128 echo
129 (query_setup_data "$CONFIG_TEXT" \
130 "$TITLE" "$QUESTION" "$NAME")
131 else
133 local PARAM_TYPE
134 local DEF_PARAM
135 local PARAM_TYPE_RET
136 PARAM_TYPE=$(get_param_type "$NAME")
137 PARAM_TYPE_RET=$?
138 DEF_PARAM=$(get_default_param "$NAME")
139 if [ "$PARAM_TYPE_RET" != '0' ]; then
140 if [ "$DEF_PARAM" = "none" ]; then
141 echo $NAME: There is no param type, \
142 but default parameter is \
143 'none', should be OK >&2
144 else
145 echo $NAME: There is no param type, \
146 and default parameter is \
147 $DEF_PARAM >&2
148 echo " something may be WRONG" >&2
151 echo -n 'LIRC_DRIVER='"${NAME}; "
152 if [ "$(expr length "$NAME")" -lt 8 ]; then
153 echo -n " "
155 echo 'DRIVER_PARAMETER='"$DEF_PARAM;" \
156 'DRIVER_PARAM_TYPE='"$PARAM_TYPE;"
159 done
160 echo "${INDENT}fi"
161 echo "${INDENT}}"
162 echo "${INDENT}else"
163 echo "${INDENT} return;"
164 echo "${INDENT}fi;"
167 rm $TEMP
169 gen_hw_type_menu()
171 local TITLE="Select your driver"
172 local CONFIG_TEXT="CONFIG_DRIVER_TEXT"
173 local QUESTION="hw_menu_entry"
174 INDENT=""
176 query_setup_data "$CONFIG_TEXT" "$TITLE" \
177 "$QUESTION" "@any"
178 #echo ' echo $NAME'
180 get_default_param()
182 local TITLE="Specify I/O base address and IRQ of your hardware"
183 local CONFIG_TEXT="SET_PORT_TEXT"
184 local QUESTION="default_param"
185 local DEVICE="$1"
187 query_setup_data "$CONFIG_TEXT" "$TITLE" \
188 "$QUESTION" "$DEVICE"
190 get_param_type()
192 local TITLE=""
193 local CONFIG_TEXT="CONFIG_TEXT"
194 CONFIG_TEXT="$CONFIG_TEXT combination, or enter costum values"
195 local QUESTION="param_type"
196 local DEVICE="$1"
198 query_setup_data "$CONFIG_TEXT" "$TITLE" \
199 "$QUESTION" "$DEVICE"
202 gen_hw_type_menu