#!/bin/bash
# Added key-download for OScam-emu Patch
# starts config.sh if patched
# allow save Config if not patched
# add -emu and -modernemu
### CONFIG - START
# Enable colored output-lines on shell? [yes/no]
ENABLECOLORS="yes"
# TRUNKs
svnURL="http://streamboard.tv/svn/oscam/trunk"
# TAGs
svnURLtags="
Sie müssen registriert sein, um Links zu sehen.
"
svnTAGSver="1.10"
# MODERNs
svnURLmodern="
Sie müssen registriert sein, um Links zu sehen.
"
#patch-name
patchNAME="cw_cache_v08.patch"
#Config-name
ConfigName="/var/etc/config.h"
### CONFIG - END
. /var/emu/script/functions.sh
[ -z $IPURL ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $OSBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CAMBINS ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
ScriptVer="1.3.5"
#Auf Architektur und Dateiendung pruefen
if [ ! -f /var/emu/script/ipc-architecture.sh ]; then
wget -O/var/emu/script/ipc-architecture.sh ipc.pebkac.at/ipc/scripts/ipc-architecture.sh && chmod +x /var/emu/script/ipc-architecture.sh
else
. /var/emu/script/ipc-architecture.sh
fi
OSCAMbin="$CAMBINS/oscam/oscam.$ENDUNG"
if [ "$ENABLECOLORS" = "yes" ]; then
ROT=`tput setaf 1`
GRUEN=`tput setaf 2`
BOLD=`tput bold`
NORM='tput op && tput sgr0'
else
ROT="" ; GRUEN="" ; BOLD="" ; NORM=""
fi
CPUcores=$(grep ^processor /proc/cpuinfo | wc -l)
[ -z "$CPUcores" ] && CPUcores=1
[[ "$CPUcores" < "1" ]] && CPUcores=1
#### functions
renewbinary() {
mv $OSCAMbin $OSCAMbin.prev
mv -f $filedir_tmp/$oscamBUILD/build_dir/oscam $OSCAMbin
echo " "
echo "Die neue $OSVERSION befindet sich in $CAMBINS/oscam/"
echo " "
}
OScamRestart() {
if [ "$AutoCompileIT" = "0" ]; then
echo "-------------------------------------------------------------------------------"
echo ""
echo "Soll OScam jetzt neu gestartet werden?"
echo -en "\033[1;33m[J]a | []Nein \033[0m"
read key
case $key in
[JjYy]|[jJ][aA]|[yY][eE][sS])
echo " "
oscam restart
;;
*)
sleep 0.5
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
else
oscam restart
fi
}
loadConfig() {
if [ ! -f "$filedir_tmp/$patchNAME" ]; then
if [ "$AutoCompileIT" = "0" ]; then
echo "-------------------------------------------------------------------------------"
echo ""
echo "Moechten Sie die gespeicherte Config verwenden?"
echo -en "\033[1;33m[J]a | []Nein \033[0m"
read key
case $key in
[JjYy]|[jJ][aA]|[yY][eE][sS])
echo " "
cp $ConfigName $filedir_tmp/$oscamBUILD
USeConfigs=1
;;
*)
USeConfigs=0
sleep 0.5
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
fi
fi
}
saveConfig() {
if [ ! -f "$filedir_tmp/$patchNAME" ]; then
echo "-------------------------------------------------------------------------------"
echo ""
echo "Moechten Sie die Config fuer spaetere Kompilier-Vorgaenge speichern?"
echo -en "\033[1;33m[J]a | []Nein \033[0m"
read key
case $key in
[JjYy]|[jJ][aA]|[yY][eE][sS])
echo " "
cp $filedir_tmp/$oscamBUILD/config.h $ConfigName
#SaveConfigs=1
;;
*)
#SaveConfigs=0
sleep 0.5
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
fi
}
WhichRevision() {
echo "-------------------------------------------------------------------------------"
echo ""
echo "Moechten Sie eine bestimmte svn Revisionsnummer kompilieren oder die aktuelle?"
echo -en "\033[1;33m[04801] | []Aktuelle \033[0m"
read key
case $key in
[0-9][0-9][0-9][0-9][0-9])
echo " "
revision_num=$key
;;
"")
revision_num=""
;;
*)
echo -e " \033[1;31mUngueltige Eingabe!\033[0m"
sleep 1 ; WhichRevision
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
}
Keyrenewal() {
echo "-------------------------------------------------------------------------------"
echo ""
echo "Sollen die Keys aus /var/etc/ verwendet werden, oder sollen sie aktualisiert werden?"
echo -en "\033[1;33m[A]ktualisieren | []Vorhandene Keys \033[0m"
read key
case $key in
[aA])
echo " "
cd /var/keys/ ; wget -O SoftCam.Key $SCURL
if [ ! -d $filedir_tmp/${oscamBUILD} ]; then
mkdir $filedir_tmp/$oscamBUILD/
fi
ln -fs /var/keys/SoftCam.Key $filedir_tmp/$oscamBUILD/SoftCam.Key
cd ${filedir_tmp}/${oscamBUILD}
;;
*)
ln -fs /var/keys/SoftCam.Key $filedir_tmp/$oscamBUILD/SoftCam.Key
sleep 1
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
}
#### vars
CheckInstalledFile="/var/emu/conf/.oscam_compile_check.OK"
oscamBUILD="oscam-svn"
WGETLOG="/tmp/.wget.log"
filedir_tmp_tool="/tmp/compile/toolchains"
filedir_tmp="/tmp/compile"
ScriptName=$(basename $0)
svnABLE="trunk"
AutoCompileIT=0
USeConfigs=0
SaveConfigs=0
#### main
$NORM
echo "$ScriptName v$ScriptVer"
case "$1" in
[hH][eE][lL][pP]|[hH][iI][lL][fF][eE]|\?)
echo "Usage: $0"
echo " or: $0 <revision>"
echo " or: $0 -emu"
echo " or: $0 -auto"
echo " or: $0 -tags"
echo " or: $0 -tags -auto"
echo " or: $0 -modern"
echo " or: $0 -modern -auto"
echo " or: $0 -modernemu"
echo " or: $0 -cardlist"
exit 0
;;
-tag*|--tag*)
svnABLE="tags"
oscamBUILD="oscam-tags"
;;
-emu|--emu)
patchNAME="oscam-emu.patch"
if [ ! -d $filedir_tmp ]; then
mkdir $filedir_tmp
fi
wget -O$filedir_tmp/$patchNAME
Sie müssen registriert sein, um Links zu sehen.
Keyrenewal
;;
-modern|--modern)
svnABLE="modern"
oscamBUILD="oscam-modern"
;;
-modernemu|--modernemu)
svnABLE="modern"
oscamBUILD="oscam-modern"
patchNAME="oscam-emu.patch"
if [ ! -d $filedir_tmp ]; then
mkdir $filedir_tmp
fi
wget -O$filedir_tmp/$patchNAME
Sie müssen registriert sein, um Links zu sehen.
;;
-auto|--auto)
AutoCompileIT=1
;;
-cardlist|--cardlist)
svnABLE="modern"
oscamBUILD="oscam-modern"
patchNAME="cardlist.patch"
if [ ! -d $filedir_tmp ]; then
mkdir $filedir_tmp
fi
wget -O$filedir_tmp/$patchNAME
Sie müssen registriert sein, um Links zu sehen.
;;
esac
case "$2" in
-auto|--auto)
AutoCompileIT=1
;;
esac
[ ! -d "$filedir_tmp" ] && mkdir -p $filedir_tmp && chmod 777 $filedir_tmp >/dev/null 2>&1
cd $filedir_tmp
[ "$AutoCompileIT" = "0" ] && WhichRevision || revision_num=""
if [ -z "$revision_num" ]; then
if [ "$svnABLE" = "tags" ]; then
revision_num=$(svn info $svnURLtags/$svnTAGSver | grep '^Revision:' | sed -e 's/^Revision: //')
echo " Lade aktuelle $oscamBUILD $svnTAGSver Revision ${revision_num}..."
svn co $svnURLtags/$svnTAGSver ${filedir_tmp}/${oscamBUILD}
if [ $? -ne "0" ]; then
echo -e " \033[1;31mVerbindungsfehler! Abbruch\033[0m"
exit 1
fi
elif [ "$svnABLE" = "modern" ]; then
revision_num=$(svn info $svnURLmodern | grep '^Revision:' | sed -e 's/^Revision: //')
echo " Lade aktuelle $oscamBUILD Revision ${revision_num}..."
svn co $svnURLmodern ${filedir_tmp}/${oscamBUILD}
if [ $? -ne "0" ]; then
echo -e " \033[1;31mVerbindungsfehler! Abbruch\033[0m"
exit 1
fi
else
revision_num=$(svn info $svnURL | grep '^Revision:' | sed -e 's/^Revision: //')
echo " Lade aktuelle $oscamBUILD Revision ${revision_num}..."
svn co $svnURL ${filedir_tmp}/${oscamBUILD}
if [ $? -ne "0" ]; then
echo -e " \033[1;31mVerbindungsfehler! Abbruch\033[0m"
exit 1
fi
fi
else
if [ "$svnABLE" = "tags" ]; then
echo "Lade $oscamBUILD $svnTAGSver Revision ${revision_num}..."
svn co -r $revision_num $svnURLtags/$svnTAGSver ${filedir_tmp}/${oscamBUILD}
if [ $? -ne "0" ]; then
echo -e " \033[1;31mVerbindungsfehler! Abbruch\033[0m"
exit 1
fi
elif [ "$svnABLE" = "modern" ]; then
echo " Lade aktuelle $oscamBUILD Revision ${revision_num}..."
svn co -r $revision_num $svnURLmodern ${filedir_tmp}/${oscamBUILD}
if [ $? -ne "0" ]; then
echo -e " \033[1;31mVerbindungsfehler! Abbruch\033[0m"
exit 1
fi
else
echo " Lade $oscamBUILD Revision ${revision_num}..."
svn co -r $revision_num $svnURL ${filedir_tmp}/${oscamBUILD}
if [ $? -ne "0" ]; then
echo -e " \033[1;31mVerbindungsfehler! Abbruch\033[0m"
exit 1
fi
fi
fi
if [ $? -ne "0" ]; then
echo " "
echo -e " \033[1;31mVerbindungsfehler! Abbruch!\033[0m"
exit 1
fi
echo " "
if [ -f $ConfigName ]; then
loadConfig
fi
if [ ! -d "${filedir_tmp}/${oscamBUILD}" ]; then
echo $ROT "ERROR: ${filedir_tmp}/${oscamBUILD} existiert nicht. Download fehlgeschlagen? Abbruch!" ; $NORM
exit 1
else
if [ "$AutoCompileIT" = "0" ]; then
if [ "$USeConfigs" = "0" ]; then
cd ${filedir_tmp}/${oscamBUILD}
echo " "
echo "Im folgenden Menue koennen Sie einstellen was OScam unterstuetzen soll "
echo "Mit der <Leer-taste> waehlen sie was aus.."
echo "Mit der <Enter-taste> bestaetigen sie.."
echo "Mit der <ESC-taste> kehren sie ein Menue zurueck.."
echo " "
read -p "Druecken Sie bitte <Enter> um fortzufahren..."
./config.sh -g
saveConfig
else
echo "Config gefunden"
fi
fi
fi
if [ -f "$filedir_tmp/$patchNAME" ]; then
cd $filedir_tmp/$oscamBUILD
patch -p0 < $filedir_tmp/$patchNAME && echo "" && echo $GRUEN "$patchNAME gefunden und gepatched" ; $NORM && echo ""
read -p "Druecken Sie bitte <Enter> um fortzufahren..."
Keyrenewal
echo " "
echo "Im folgenden Menue koennen Sie einstellen was OScam unterstuetzen soll "
echo "Mit der <Leer-taste> waehlen sie was aus.."
echo "Mit der <Enter-taste> bestaetigen sie.."
echo "Mit der <ESC-taste> kehren sie ein Menue zurueck.."
echo " "
read -p "Druecken Sie bitte <Enter> um fortzufahren..."
./config.sh -g
saveConfig
fi
echo " "
if [ ! -z "$ARM" ]; then
echo " Bereite $ARM Kompilierung vor..."
echo ""
else
echo " Bereite ${SYSBIT}-Bit Kompilierung vor..."
echo " "
fi
sleep 3
#read -p "Druecken Sie bitte <Enter> um fortzufahren..."
cd $filedir_tmp/$oscamBUILD
mkdir -p build_dir ; cd build_dir ; make clean >/dev/null 2>&1
cmake -DCS_CONFDIR=/var/etc/ ..
echo " "
echo "Folgendes Kompilieren kann einige Zeit in Anspruch nehmen... "
echo " "
[ "$AutoCompileIT" = "0" ] && read -p "Druecken Sie bitte <Enter> um fortzufahren..."
make -j$CPUcores
if [ ! -f "$filedir_tmp/$oscamBUILD/build_dir/oscam" ]; then
echo $ROT "ERROR: compile fehlgeschlagen? Abbruch!" ; $NORM
exit 1
else
echo " "
renewbinary
sleep 1
echo " "
# beep
echo -en "\007"
echo $GRUEN "Neue ${oscamBUILD} build $revision_num erfolgreich erstellt!" ; $NORM
fi
cd /
## cleanup
[ "$AutoCompileIT" = "0" ] && rm -rf ${filedir_tmp}/${oscamBUILD}
rm -f /tmp/config.mak.*
rm -f /tmp/oscam-config.h.bak
echo " "
OScamRestart
echo $GRUEN "Fertig! ;-)" ; $NORM
echo " "
exit 0