1 | #!/bin/bash
|
---|
2 | tempfile=/tmp/test$$
|
---|
3 | tempfileconfig=/tmp/oscam-config.h
|
---|
4 | configfile=oscam-config.h
|
---|
5 | DIALOG=${DIALOG:-`which dialog`}
|
---|
6 |
|
---|
7 | height=30
|
---|
8 | width=65
|
---|
9 | listheight=11
|
---|
10 |
|
---|
11 | if [ -z "${DIALOG}" ]; then
|
---|
12 | echo "Please install dialog package." 1>&2
|
---|
13 | exit 1
|
---|
14 | fi
|
---|
15 |
|
---|
16 | cp -f $configfile $tempfileconfig
|
---|
17 |
|
---|
18 | addons="WEBIF HAVE_DVBAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG CS_WITH_DOUBLECHECK CS_LED QBOXHD_LED CS_LOGHISTORY MODULE_MONITOR WITH_SSL"
|
---|
19 | protocols="MODULE_CAMD33 MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_GBOX MODULE_RADEGAST MODULE_SERIAL MODULE_CONSTCW"
|
---|
20 | readers="WITH_CARDREADER READER_NAGRA READER_IRDETO READER_CONAX READER_CRYPTOWORKS READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG"
|
---|
21 |
|
---|
22 | check_test() {
|
---|
23 | if [ "$(cat $tempfileconfig | grep "^#define $1$")" != "" ]; then
|
---|
24 | echo "on"
|
---|
25 | else
|
---|
26 | echo "off"
|
---|
27 | fi
|
---|
28 | }
|
---|
29 |
|
---|
30 | disable_all() {
|
---|
31 | for i in $1; do
|
---|
32 | sed -i -e "s/^#define ${i}$/\/\/#define ${i}/g" $tempfileconfig
|
---|
33 | done
|
---|
34 | }
|
---|
35 |
|
---|
36 | enable_package() {
|
---|
37 | for i in $(cat $tempfile); do
|
---|
38 | strip=$(echo $i | sed "s/\"//g")
|
---|
39 | sed -i -e "s/\/\/#define ${strip}$/#define ${strip}/g" $tempfileconfig
|
---|
40 | done
|
---|
41 | }
|
---|
42 |
|
---|
43 | print_components() {
|
---|
44 | clear
|
---|
45 | echo "You have selected the following components:"
|
---|
46 | echo -e "\nAdd-ons:"
|
---|
47 | for i in $addons; do
|
---|
48 | printf "\t%-20s: %s\n" $i $(check_test "$i")
|
---|
49 | done
|
---|
50 |
|
---|
51 | echo -e "\nProtocols:"
|
---|
52 | for i in $protocols; do
|
---|
53 | printf "\t%-20s: %s\n" $i $(check_test "$i")
|
---|
54 | done
|
---|
55 |
|
---|
56 | echo -e "\nReaders:"
|
---|
57 | for i in $readers; do
|
---|
58 | printf "\t%-20s: %s\n" $i $(check_test "$i")
|
---|
59 | done
|
---|
60 | cp -f $tempfileconfig $configfile
|
---|
61 | }
|
---|
62 |
|
---|
63 | menu_addons() {
|
---|
64 | ${DIALOG} --checklist "\nChoose add-ons:\n " $height $width $listheight \
|
---|
65 | WEBIF "Web Interface" $(check_test "WEBIF") \
|
---|
66 | HAVE_DVBAPI "DVB API" $(check_test "HAVE_DVBAPI") \
|
---|
67 | IRDETO_GUESSING "Irdeto guessing" $(check_test "IRDETO_GUESSING") \
|
---|
68 | CS_ANTICASC "Anti cascading" $(check_test "CS_ANTICASC") \
|
---|
69 | WITH_DEBUG "Debug messages" $(check_test "WITH_DEBUG") \
|
---|
70 | CS_WITH_DOUBLECHECK "ECM doublecheck" $(check_test "CS_WITH_DOUBLECHECK") \
|
---|
71 | CS_LED "LED" $(check_test "CS_LED") \
|
---|
72 | QBOXHD_LED "QboxHD LED" $(check_test "QBOXHD_LED") \
|
---|
73 | CS_LOGHISTORY "Log history" $(check_test "CS_LOGHISTORY") \
|
---|
74 | MODULE_MONITOR "Monitor" $(check_test "MODULE_MONITOR") \
|
---|
75 | WITH_SSL "OpenSSL support" $(check_test "WITH_SSL") \
|
---|
76 | 2> ${tempfile}
|
---|
77 |
|
---|
78 | opt=${?}
|
---|
79 | if [ $opt != 0 ]; then return; fi
|
---|
80 |
|
---|
81 | disable_all "$addons"
|
---|
82 | enable_package
|
---|
83 | }
|
---|
84 |
|
---|
85 | menu_protocols() {
|
---|
86 | ${DIALOG} --checklist "\nChoose protocols:\n " $height $width $listheight \
|
---|
87 | MODULE_CAMD33 "camd 3.3" $(check_test "MODULE_CAMD33") \
|
---|
88 | MODULE_CAMD35 "camd 3.5 UDP" $(check_test "MODULE_CAMD35") \
|
---|
89 | MODULE_CAMD35_TCP "camd 3.5 TCP" $(check_test "MODULE_CAMD35_TCP") \
|
---|
90 | MODULE_NEWCAMD "newcamd" $(check_test "MODULE_NEWCAMD") \
|
---|
91 | MODULE_CCCAM "CCcam" $(check_test "MODULE_CCCAM") \
|
---|
92 | MODULE_GBOX "gbox" $(check_test "MODULE_GBOX") \
|
---|
93 | MODULE_RADEGAST "radegast" $(check_test "MODULE_RADEGAST") \
|
---|
94 | MODULE_SERIAL "Serial" $(check_test "MODULE_SERIAL") \
|
---|
95 | MODULE_CONSTCW "constant CW" $(check_test "MODULE_CONSTCW") \
|
---|
96 | 2> ${tempfile}
|
---|
97 |
|
---|
98 | opt=${?}
|
---|
99 | if [ $opt != 0 ]; then return; fi
|
---|
100 |
|
---|
101 | disable_all "$protocols"
|
---|
102 | enable_package
|
---|
103 | }
|
---|
104 |
|
---|
105 | menu_reader() {
|
---|
106 | ${DIALOG} --checklist "\nChoose reader:\n " $height $width $listheight \
|
---|
107 | READER_NAGRA "Nagravision" $(check_test "READER_NAGRA") \
|
---|
108 | READER_IRDETO "Irdeto" $(check_test "READER_IRDETO") \
|
---|
109 | READER_CONAX "Conax" $(check_test "READER_CONAX") \
|
---|
110 | READER_CRYPTOWORKS "Cryptoworks" $(check_test "READER_CRYPTOWORKS") \
|
---|
111 | READER_SECA "Seca" $(check_test "READER_SECA") \
|
---|
112 | READER_VIACCESS "Viaccess" $(check_test "READER_VIACCESS") \
|
---|
113 | READER_VIDEOGUARD "NDS Videoguard" $(check_test "READER_VIDEOGUARD") \
|
---|
114 | READER_DRE "DRE Crypt" $(check_test "READER_DRE") \
|
---|
115 | READER_TONGFANG "Tongfang" $(check_test "READER_TONGFANG") \
|
---|
116 | 2> ${tempfile}
|
---|
117 |
|
---|
118 | opt=${?}
|
---|
119 | if [ $opt != 0 ]; then return; fi
|
---|
120 |
|
---|
121 | menuitem=`cat $tempfile`
|
---|
122 | if [ "$menuitem" != "" ]; then
|
---|
123 | echo -n " \"WITH_CARDREADER\"" >> ${tempfile}
|
---|
124 | fi
|
---|
125 | disable_all "$readers"
|
---|
126 | enable_package
|
---|
127 | }
|
---|
128 |
|
---|
129 | while true; do
|
---|
130 | ${DIALOG} --menu "\nSelect category:\n " $height $width $listheight \
|
---|
131 | Add-ons "Add-ons" \
|
---|
132 | Protocols "Network protocols" \
|
---|
133 | Reader "Reader" \
|
---|
134 | Save "Save" \
|
---|
135 | 2> ${tempfile}
|
---|
136 |
|
---|
137 | opt=${?}
|
---|
138 | if [ $opt != 0 ]; then clear; rm $tempfile; rm $tempfileconfig; exit; fi
|
---|
139 |
|
---|
140 | menuitem=`cat $tempfile`
|
---|
141 | case $menuitem in
|
---|
142 | Add-ons) menu_addons;;
|
---|
143 | Protocols) menu_protocols;;
|
---|
144 | Reader) menu_reader;;
|
---|
145 | Save) print_components; rm $tempfile; rm $tempfileconfig; exit;;
|
---|
146 | esac
|
---|
147 | done
|
---|