summaryrefslogtreecommitdiff
path: root/.tools/scripts/init.sh
diff options
context:
space:
mode:
Diffstat (limited to '.tools/scripts/init.sh')
-rwxr-xr-x.tools/scripts/init.sh217
1 files changed, 217 insertions, 0 deletions
diff --git a/.tools/scripts/init.sh b/.tools/scripts/init.sh
new file mode 100755
index 00000000..9bac358e
--- /dev/null
+++ b/.tools/scripts/init.sh
@@ -0,0 +1,217 @@
+#!/bin/bash
+
+mkdir logs
+
+export dir=$(pwd)
+export ERRFILE=${dir}/logs/${LOGFILE}
+
+cat /etc/os-release
+
+rm ${ERRFILE}
+
+function check_error {
+ if [ "$1" != 0 ]; then
+ echo "Error $1"
+ exit $1
+ fi
+}
+
+function update_repos {
+ if [ "$CI_SERVER" == "" ];
+ then
+ return
+ fi
+
+ export DATA=$(cat /etc/resolv.conf|grep "nameserver 1.10.100.101")
+ if [ "$DATA" != "" ];
+ then
+ echo "Detected local runner"
+ sed -i 's!http://httpredir.debian.org/debian!http://1.10.100.103/debian!' /etc/apt/sources.list
+ else
+ echo "Detected non local runner"
+ fi
+}
+
+function gitclone1 {
+ echo git clone $2 $3
+ git clone $2 $3
+ if [ "$?" != 0 ]; then
+ echo git clone $1 $3
+ git clone $1 $3
+ return $?
+ fi
+ return $?
+}
+
+function gitclone {
+ export name1=$1/$2
+ export name2=${CI_BUILD_REPO##*@}
+ export name2=https://${name2%/*}/$2
+
+ gitclone1 "$name1" "$name2" $3
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ gitclone1 "$name1" "$name2" $3
+ if [ "$?" != 0 ]; then
+ sleep 3s
+ gitclone1 "$name1" "$name2" $3
+ if [ "$?" != 0 ]; then
+ sleep 5s
+ gitclone1 "$name1" "$name2" $3
+ fi
+ fi
+ fi
+ check_error $?
+}
+
+function update_repos {
+ if [ "$CI_SERVER" == "" ];
+ then
+ return
+ fi
+
+ export DATA=$(cat /etc/resolv.conf|grep "nameserver 1.10.100.101")
+ if [ "$DATA" != "" ];
+ then
+ echo "Detected local runner"
+ sed -i 's!http://httpredir.debian.org/debian!http://1.10.100.103/debian!' /etc/apt/sources.list
+ else
+ echo "Detected non local runner"
+ fi
+}
+
+function aptget_update {
+ update_repos
+ echo apt-get update
+ apt-get update
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ apt-get update
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ apt-get update
+ fi
+ fi
+ check_error $?
+}
+
+function aptget_install {
+ echo apt-get -y install $*
+ apt-get -y install $*
+ if [ "$?" != 0 ]; then
+ sleep 1s
+ apt-get -y install $*
+ if [ "$?" != 0 ]; then
+ sleep 2s
+ apt-get -y install $*
+ fi
+ fi
+ check_error $?
+}
+
+function make_server {
+ ls -la ../server-data
+ ls -la ../server-data/plugins
+ echo source src/evol/tools/vars.sh
+ source ./src/evol/tools/vars.sh
+ check_error $?
+ export CPPFLAGS="$CPPFLAGS -DI_AM_AWARE_OF_THE_RISK_AND_STILL_WANT_TO_RUN_HERCULES_AS_ROOT"
+ echo "autoreconf -i"
+ autoreconf -i
+ check_error $?
+ echo ./configure $1 CPPFLAGS=\"${CPPFLAGS}${HERCCPPFLAGS}\"
+ ./configure $1 CPPFLAGS="$CPPFLAGS$HERCCPPFLAGS"
+ export err="$?"
+ if [ "$err" != 0 ]; then
+ echo "Error $err"
+ echo cat config.log
+ cat config.log
+ exit $err
+ fi
+ echo "make -j2"
+ make -j2
+ check_error $?
+ echo "make -j2 plugin.script_mapquit"
+ make -j2 plugin.script_mapquit
+ check_error $?
+ make install
+ check_error $?
+
+ cd src/evol
+ echo "autoreconf -i"
+ mkdir m4
+ autoreconf -i
+ check_error $?
+ mkdir build
+ cd build
+ echo ../configure $2 CPPFLAGS=\"${VARS}\"
+ ../configure $2 CPPFLAGS="${VARS}"
+ check_error $?
+ echo "make -j2 V=0"
+ make -j2 V=0
+ check_error $?
+ cd ../../../..
+ ls -la server-data/plugins
+}
+
+function do_init_data {
+ mkdir shared
+ cd ..
+ rm -rf server-data
+ cp -r ${CI_PROJECT_NAME:=serverdata} server-data
+ ls -la server-data
+ check_error $?
+}
+
+function do_init_tools {
+ cd ..
+ rm -rf tools
+ gitclone https://gitlab.com/evol evol-tools.git tools
+}
+
+function do_init {
+ do_init_data
+ rm -rf server-code
+ gitclone https://gitlab.com/evol hercules.git server-code
+ check_error $?
+ cd server-code/src
+ check_error $?
+ gitclone https://gitlab.com/evol evol-hercules.git evol
+ check_error $?
+ cd ../..
+ check_error $?
+ mkdir -p server-data/plugins
+}
+
+function build_init {
+ if [ "$CI_SERVER" == "" ];
+ then
+ return
+ fi
+ mkdir -p /local/bin
+ echo "#!/bin/bash" > /local/bin/id
+ echo "echo 1000" >> /local/bin/id
+ export PATH="/local/bin:$PATH"
+ chmod +x /local/bin/id
+ echo "fake id check"
+ id
+
+ cd server-code/src/evol
+ source tools/vars.sh
+ check_error $?
+ cd ../../..
+ check_error $?
+ echo $CC --version
+ $CC --version
+ check_error $?
+}
+
+function init_configs {
+ cd tools/localserver
+ ./installconfigs.sh
+ cd ../..
+ cp server-data/.tools/conf/$1/* server-data/conf/import/
+ cp server-data/.tools/npc/motd-* server-data/npc/commands/
+ ls -la server-data/conf/import
+ cat server-data/conf/import/inter_conf.txt
+}