#!/bin/bash
#osemu-compile.sh 1.01 by jensebub & al-x83
#Autocompile added
### CONFIG - START
# Enable colored output-lines on shell? [yes/no]
ENABLECOLORS="yes"
svnURL="https://github.com/oscam-emu/OSEmu/trunk"
AutoCompileIT="0"
### CONFIG - END
. /var/emu/script/functions.sh
[ -z $IPURL ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $OEVERSION ] && 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="0.04"
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
renewbinary() {
cd $CAMBINS/osemu/
mv $OEBIN $OEBIN.prev
cd $filedir_tmp/$osemuBUILD
mv OSEmu $CAMBINS/osemu/$OEVERSION
echo " "
echo "Die neue $OEVERSION befindet sich in $CAMBINS/osemu/"
sleep 1
echo " "
}
OSEmuRestart() {
echo "-------------------------------------------------------------------------------"
echo ""
echo "Soll OSEmu 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 " "
cd /var/emu/script/ ; ./osemu restart
cd $reset_path
;;
*)
sleep 1
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
}
Keyrenewal() {
echo "-------------------------------------------------------------------------------"
echo ""
echo "Sollen die Keys aus /var/keys/ 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
ln -fs /var/keys/SoftCam.Key $filedir_tmp/$osemuBUILD/SoftCam.Key
cd ${filedir_tmp}/${osemuBUILD}
;;
*)
ln -fs /var/keys/SoftCam.Key $filedir_tmp/$osemuBUILD/SoftCam.Key
sleep 1
;;
esac
echo " "
echo "-------------------------------------------------------------------------------"
echo " "
}
WhichRevision() {
echo "-------------------------------------------------------------------------------"
echo ""
echo "Moechten Sie eine bestimmte svn Revisionsnummer kompilieren oder die aktuelle?"
echo -en "\033[1;33m[0016] | []Aktuelle \033[0m"
read key
case $key in
[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 " "
}
## vars
osemuBUILD="osemu-svn"
WGETLOG="/tmp/.wget.log"
reset_path="$(pwd)"
filedir_tmp="/tmp/compile"
ScriptName=$(basename $0)
svnABLE="trunk"
##main
$NORM
echo "$ScriptName v$ScriptVer"
case "$1" in
[hH][eE][lL][pP]|[hH][iI][lL][fF][eE]|\?)
echo "Usage: $0 (<revision>)"
exit 0
;;
-auto|--auto)
AutoCompileIT=1
;;
esac
[ ! -d "$filedir_tmp" ] && mkdir -p $filedir_tmp
cd $filedir_tmp
[ "$AutoCompileIT" = "0" ] && WhichRevision || revision_num=""
if [ -z "$revision_num" ]; then
revision_num=$(svn info $svnURL | grep '^Revision:' | sed -e 's/^Revision: //')
echo "Lade aktuelle $osemuBUILD Revision ${revision_num}..."
svn co $svnURL ${filedir_tmp}/${osemuBUILD}
else
echo "Lade $osemuBUILD Revision ${revision_num}..."
svn co -r $revision_num $svnURL ${filedir_tmp}/${osemuBUILD}
fi
if [ $? -ne "0" ]; then
echo " "
echo -e " \033[1;31mVerbindungsfehler! Abbruch!\033[0m"
exit 1
fi
echo " "
if [ ! -d "${filedir_tmp}/${oscamBUILD}" ]; then
echo $ROT "ERROR: ${filedir_tmp}/${oscamBUILD} existiert nicht. Download fehlgeschlagen? Abbruch!" ; $NORM
exit 1
else
echo " "
if [ "$AutoCompileIT" = "0" ]; then
read -p "Druecken Sie bitte <Enter> um fortzufahren..."
fi
fi
cd ${filedir_tmp}/${osemuBUILD}
if [ -f "/var/keys/SoftCam.Key" ]; then
if [ "$AutoCompileIT" = "0" ]; then
Keyrenewal
else
wget -O SoftCam.Key $SCURL
fi
fi
mkdir -p build_dir ; cd build_dir ; cd .. ; make
echo " "
if [ ! -f "$filedir_tmp/$osemuBUILD/OSEmu" ]; then
echo $ROT "ERROR: compile fehlgeschlagen? Abbruch!" ; $NORM
exit 1
else
echo " "
renewbinary
sleep 1
echo " "
echo -en "\007"
echo $GRUEN "Neue ${osemuBUILD} build $revision_num erfolgreich erstellt!" ; $NORM
fi
rm -rf ${filedir_tmp}/${osemuBUILD}
echo " "
if [ "$AutoCompileIT" = "0" ]; then
OSEmuRestart
else
cd /var/emu/script/ ; ./osemu restart
fi
echo $GRUEN "Fertig! ;-)" ; $NORM
echo " "
exit 0