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