summaryrefslogblamecommitdiff
path: root/.tools/scripts/init.sh
blob: 3b800bb010f33d837426c58d93daf92f0496c88e (plain) (tree)















































































































                                                                                                       

                                                 
                                                               
                                             
                                                        
                                                         
                                         
                                                                          

                             


                                      
                                                                                                             


                        

                                                               






















                                         

                                                           









                              

                          
         






                        
                                                            




                      
                                                                     
                  
                                          
                  
                                                                        
                                                 
         


                                                                      





                                                                      
              
                              
                                                               
          
                  
      
                                                                                                         





































                                                              
#!/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
    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 {
    apt-get -y -qq install $*
    if [ "$?" != 0 ]; then
        sleep 1s
        apt-get -y -qq install $*
        if [ "$?" != 0 ]; then
            sleep 2s
            apt-get -y -qq install $*
        fi
    fi
    check_error $?
}

function make_server {
    ls -la ../server-data
    ls -la ../server-data/plugins
    if [ -e "../server-data/.tools/beta.patch2" ]
      then
        echo "Download and install Python 2.7 Minimal ........"
        aptget_install python2.7-minimal wget
        echo "Download and apply reapply patch ........"
        cd ../server-data/.tools; python2.7 applicator.py
        echo "Apply beta.patch2 ........"
        cd ../../server-code ; git apply ../server-data/.tools/beta.patch2
        echo "........ Done."
    fi
    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 -UPYTHON_LOGS"
    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} -UPYTHON_LOGS\"
    ../configure $2  CPPFLAGS="${VARS} -UPYTHON_LOGS"
    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
    rm -rf ../server-data
    cp -r . ../server-data
    cd ..
    ls -la server-data
    check_error $?
}

function do_init_tools {
    cd ..
    rm -rf tools
    gitclone https://git.themanaworld.org/ml tools.git tools
}

function do_init {
    do_init_data
    rm -rf server-code
    gitclone https://git.themanaworld.org/ml hercules.git server-code
    check_error $?
    cd server-code/src ; git checkout tmw2
    check_error $?
    #: ' #Use this to force an old version. You need s20190422 for this.
    echo "Rolling server back to correct version"
    cd ..
    # 10.0 and prior: Server s20190513
    #git diff master 41b5d5e9b6f14fd26197958aec29a02858dff299 > x.diff
    # Current version: Server s20190819
    #git diff master ce2dbb6acdc559ec256d1f9f9a779b8283064708 > x.diff
    #ls
    #head -n 25 x.diff
    #tail -n 40 x.diff
    #git apply --reject --whitespace=nowarn x.diff
    #echo "====================================== CHANGES APPLIED"
    git status
    ls --recursive|grep ".rej"
    echo "====================================== Continuing..."
    cd src
    check_error $?
    #'
    gitclone https://git.themanaworld.org/ml evol-hercules.git evol ; cd evol ; git checkout tmw2 ; cd ..
    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
}