source: trunk/config.sh @ 5375

Last change on this file since 5375 was 5288, checked in by hapeba, 8 years ago

fix config.sh

  • Property svn:executable set to *
File size: 4.6 KB
Line 
1#!/bin/bash
2tempfile=/tmp/test$$
3tempfileconfig=/tmp/oscam-config.h
4configfile=oscam-config.h
5DIALOG=${DIALOG:-`which dialog`}
6
7height=30
8width=65
9listheight=13
10
11if [ -z "${DIALOG}" ]; then
12    echo "Please install dialog package." 1>&2
13    exit 1
14fi
15
16cp -f $configfile $tempfileconfig
17
18addons="WEBIF HAVE_DVBAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG CS_WITH_DOUBLECHECK CS_LED QBOXHD_LED CS_LOGHISTORY MODULE_MONITOR WITH_SSL WITH_LB LCDSUPPORT"
19protocols="MODULE_CAMD33 MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_GBOX MODULE_RADEGAST MODULE_SERIAL MODULE_CONSTCW"
20readers="WITH_CARDREADER READER_NAGRA READER_IRDETO READER_CONAX READER_CRYPTOWORKS READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG"
21
22check_test() {
23    if [ "$(cat $tempfileconfig | grep "^#define $1$")" != "" ]; then
24        echo "on"
25    else
26        echo "off"
27    fi
28}
29
30disable_all() {
31    for i in $1; do
32        sed -i -e "s/^#define ${i}$/\/\/#define ${i}/g" $tempfileconfig
33    done
34}
35
36enable_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
43print_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
63menu_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        WITH_LB             "Loadbalancing"     $(check_test "WITH_LB") \
77        LCDSUPPORT          "LCD support"       $(check_test "LCDSUPPORT") \
78        2> ${tempfile}
79
80    opt=${?}
81    if [ $opt != 0 ]; then return; fi
82
83    disable_all "$addons"
84    enable_package
85}
86
87menu_protocols() {
88    ${DIALOG} --checklist "\nChoose protocols:\n " $height $width $listheight \
89        MODULE_CAMD33       "camd 3.3"      $(check_test "MODULE_CAMD33") \
90        MODULE_CAMD35       "camd 3.5 UDP"  $(check_test "MODULE_CAMD35") \
91        MODULE_CAMD35_TCP   "camd 3.5 TCP"  $(check_test "MODULE_CAMD35_TCP") \
92        MODULE_NEWCAMD      "newcamd"       $(check_test "MODULE_NEWCAMD") \
93        MODULE_CCCAM        "CCcam"         $(check_test "MODULE_CCCAM") \
94        MODULE_GBOX         "gbox"          $(check_test "MODULE_GBOX") \
95        MODULE_RADEGAST     "radegast"      $(check_test "MODULE_RADEGAST") \
96        MODULE_SERIAL       "Serial"        $(check_test "MODULE_SERIAL") \
97        MODULE_CONSTCW      "constant CW"   $(check_test "MODULE_CONSTCW") \
98        2> ${tempfile}
99
100    opt=${?}
101    if [ $opt != 0 ]; then return; fi
102
103    disable_all "$protocols"
104    enable_package
105}
106
107menu_reader() {
108    ${DIALOG} --checklist "\nChoose reader:\n " $height $width $listheight \
109        READER_NAGRA        "Nagravision"       $(check_test "READER_NAGRA") \
110        READER_IRDETO       "Irdeto"            $(check_test "READER_IRDETO") \
111        READER_CONAX        "Conax"             $(check_test "READER_CONAX") \
112        READER_CRYPTOWORKS  "Cryptoworks"       $(check_test "READER_CRYPTOWORKS") \
113        READER_SECA         "Seca"              $(check_test "READER_SECA") \
114        READER_VIACCESS     "Viaccess"          $(check_test "READER_VIACCESS") \
115        READER_VIDEOGUARD   "NDS Videoguard"    $(check_test "READER_VIDEOGUARD") \
116        READER_DRE          "DRE Crypt"         $(check_test "READER_DRE") \
117        READER_TONGFANG     "Tongfang"          $(check_test "READER_TONGFANG") \
118        2> ${tempfile}
119
120    opt=${?}
121    if [ $opt != 0 ]; then return; fi
122
123    menuitem=`cat $tempfile`
124    if [ "$menuitem" != "" ]; then
125        echo -n " \"WITH_CARDREADER\"" >> ${tempfile}
126    fi
127    disable_all "$readers"
128    enable_package
129}
130
131while true; do
132    ${DIALOG} --menu "\nSelect category:\n " $height $width $listheight \
133        Add-ons     "Add-ons" \
134        Protocols   "Network protocols" \
135        Reader      "Reader" \
136        Save        "Save" \
137        2> ${tempfile}
138
139    opt=${?}
140    if [ $opt != 0 ]; then clear; rm $tempfile; rm $tempfileconfig; exit; fi
141
142    menuitem=`cat $tempfile`
143    case $menuitem in
144        Add-ons) menu_addons;;
145        Protocols) menu_protocols;;
146        Reader) menu_reader;;
147        Save) print_components; rm $tempfile; rm $tempfileconfig; exit;;
148    esac
149done
Note: See TracBrowser for help on using the repository browser.