179 lines
5 KiB
Bash
Executable file
179 lines
5 KiB
Bash
Executable file
#!/bin/bash
|
|
#----------------------------------------------------------------------------------------
|
|
# Scriptaufruf:
|
|
#----------------------------------------------------------------------------------------
|
|
# erstellt das SPK aus dem aktuellen master-branch vom Server:
|
|
# sh ./build_spk.sh
|
|
#
|
|
# erstellt das SPK aus dem als Parameter übergebenen Release vom Server:
|
|
# sh ./build_spk.sh 4.0.7
|
|
#
|
|
#----------------------------------------------------------------------------------------
|
|
# Ordnerstruktur:
|
|
#----------------------------------------------------------------------------------------
|
|
# ./[NAME-DES-SPK]/Build --> Arbeitsumgebung (erstellen/editieren/verschieben)
|
|
# ./[NAME-DES-SPK]/Pack --> Archivordner zum Aufbau des SPK (Startscripte etc.)
|
|
#
|
|
|
|
project="synOTR"
|
|
|
|
skriptuser=`whoami`
|
|
if [ ${skriptuser} != "root" ]; then
|
|
echo "Dieses Skript muss von Root ausgeführt werden!"
|
|
exit 1
|
|
fi
|
|
|
|
# Arbeitsverzeichnis auslesen und hineinwechseln:
|
|
# ---------------------------------------------------------------------
|
|
APPDIR=$(cd $(dirname $0);pwd)
|
|
cd ${APPDIR}
|
|
|
|
build_tmp="${APPDIR}/build_tmp"
|
|
dir=${APPDIR}
|
|
buildversion=$1
|
|
|
|
|
|
|
|
|
|
|
|
if [ -d "./${project}" ] ; then
|
|
rm -rf "./${project}"
|
|
fi
|
|
|
|
|
|
|
|
|
|
gitpull()
|
|
{
|
|
|
|
gitpath=`which git`
|
|
if [ -z ${gitpath} ]; then
|
|
echo "Das Programm git konnte nicht gefunden werden."
|
|
exit 1
|
|
fi
|
|
|
|
# Ausführung: Erstellen des SPK
|
|
echo ""
|
|
echo "-----------------------------------------------------------------------------------"
|
|
echo " git holt die aktuelle Version ..."
|
|
echo "-----------------------------------------------------------------------------------"
|
|
|
|
if [ -d "./${project}" ] ; then
|
|
cd ${project}
|
|
git pull
|
|
versions=`git tag`
|
|
cd ${APPDIR}
|
|
else
|
|
git clone https://geimist.eu:30443/geimist/${project}.git
|
|
cd ${project}
|
|
git pull
|
|
versions=`git tag`
|
|
cd ${APPDIR}
|
|
fi
|
|
|
|
|
|
#build_version=`cat "${APPDIR}/${project}/Pack/INFO" | grep version | awk -F '"' '{print $2}'`
|
|
|
|
# welche Version soll gebaut werden:
|
|
if [ -z $buildversion ]; then
|
|
echo "git checkout zu master-branch"
|
|
cd ${project}
|
|
git checkout master
|
|
cd ${APPDIR}
|
|
set_spk_version="latest_(`date +%Y`-`date +%m`-`date +%d`_`date +%H`-`date +%M`)"
|
|
else
|
|
if echo "$versions" | egrep -q "$buildversion"; then
|
|
echo "git checkout zu $buildversion"
|
|
cd ${project}
|
|
git checkout "$buildversion"
|
|
set_spk_version="$buildversion"
|
|
cd ${APPDIR}
|
|
else
|
|
echo "ACHTUNG: Die gewünschte Version wurde im Repository nicht gefunden!"
|
|
echo "Der master-branch wird verwendet!"
|
|
cd ${project}
|
|
git checkout master
|
|
cd ${APPDIR}
|
|
set_spk_version="latest_(`date +%Y`-`date +%m`-`date +%d`_`date +%H`-`date +%M`)"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
gitpull
|
|
|
|
build_version=$(get_key_value "${APPDIR}/${project}/Pack/INFO" version )
|
|
|
|
|
|
echo " - INFO: Es wird foldende Version geladen und gebaut: $set_spk_version - BUILD-Version (INFO-File): $build_version"
|
|
|
|
echo " - INFO: Erstelle den temporären Buildordner und kopiere Sourcen hinein ..."
|
|
if [ -d "./build_tmp" ] ; then
|
|
rm -rf "./build_tmp"
|
|
fi
|
|
mkdir "${build_tmp}"
|
|
|
|
cp -r "${APPDIR}/${project}"/* "${build_tmp}/"
|
|
|
|
# Ausführung: Erstellen des SPK
|
|
echo ""
|
|
echo "-----------------------------------------------------------------------------------"
|
|
echo " SPK wird erstellt..."
|
|
echo "-----------------------------------------------------------------------------------"
|
|
|
|
# Falls versteckter Ordners /.helptoc vorhanden, diesen nach /helptoc umbenennen
|
|
if test -d "${build_tmp}/.helptoc"; then
|
|
echo ""
|
|
echo " - INFO: Versteckter Ordner /.helptoc wurde lokalisiert und nach /helptoc umbenannt"
|
|
mv ${build_tmp}/.helptoc ${build_tmp}/helptoc
|
|
fi
|
|
|
|
# Rechte anpassen
|
|
echo ""
|
|
echo " - INFO: Dateirechte anpassen ..."
|
|
for i in $(find "${build_tmp}/Pack/" -type f)
|
|
do
|
|
# echo "ändere Pack: $i"
|
|
chmod 755 "$i"
|
|
chown root:root "$i"
|
|
done
|
|
|
|
for i in $(find "${build_tmp}/Build/" -type f)
|
|
do
|
|
# echo "ändere Build: $i"
|
|
chmod 755 "$i"
|
|
chown root:root "$i"
|
|
done
|
|
|
|
# Packen und Ablegen der aktuellen Installation in den entsprechenden /Pack - Ordner
|
|
echo ""
|
|
echo " - INFO: Das Archiv package.tgz wird erstellt..."
|
|
|
|
tar -C ${build_tmp}/Build -czf ${build_tmp}/Pack/package.tgz .
|
|
|
|
# Wechsel in den Ablageort von package.tgz bezüglich Aufbau des SPK's
|
|
cd ${build_tmp}/Pack
|
|
|
|
# Erstellen des eigentlichen SPK's
|
|
echo ""
|
|
echo " - INFO: Das SPK wird erstellt..."
|
|
tar -cf ${project}_$set_spk_version.spk *
|
|
mv ${project}_$set_spk_version.spk ${APPDIR}
|
|
|
|
# Löschen der temporären Daten
|
|
echo ""
|
|
echo " - INFO: Der temporäre Ordner wird wieder geschlöscht ..."
|
|
cd ${APPDIR}
|
|
if [ -d "./build_tmp" ] ; then
|
|
rm -rf "./build_tmp"
|
|
fi
|
|
|
|
echo ""
|
|
echo "-----------------------------------------------------------------------------------"
|
|
echo " Das SPK wurde erstellt und befindet sich unter..."
|
|
echo "-----------------------------------------------------------------------------------"
|
|
echo ""
|
|
echo " ${APPDIR}/${project}_$set_spk_version.spk"
|
|
echo ""
|
|
|
|
exit 0
|