123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- #!/usr/bin/env bash
- #Paul Klumpp 2012-11-19
- cwd=$(pwd)
- q2srv=$cwd/../q2srv/
- cd $cwd
- function checkuser {
- if [ "${USER}" == "root" ]; then
- echo "Nono! Don't run this as root! Don't!"
- echo "Switch to a normal user!"
- echo
- exit
- fi
- }
- function checkinstalled {
- if [ "$1" != "" ]; then
- woot=$(which "$1" 2> /dev/null)
- if [ -f "$woot" ]; then
- echo 1
- else
- echo 0
- fi
- fi
- }
- function systemcheck {
- echo "Before continuing, make sure you have the following installed:"
- echo "* git"
- echo "* make"
- echo "* cc"
- echo "* screen"
- echo "* realpath"
- echo "* Lua 5.1, only 5.1!, dev headers"
- echo "* libz, also known as zlib1g-dev on Debian/Ubuntu"
- echo
- echo " PRESS ENTER"
- echo
- read
- software="git make cc realpath lua screen"
- for soft in $software; do
- see=$(checkinstalled "$soft")
- if [ $see -eq 0 ]; then
- echo "'$soft' not found on your system. Please have a system administrator install it!"
- exit
- fi
- done
- }
- level=0
- function checkargs {
- case "$1" in
- clean)
- level=3
- ;;
- update)
- level=2
- ;;
- install)
- level=1
- ;;
- *)
- echo "Usage: $0 <clean/update/install>"
- echo
- echo " clean: cleans the compilation directories, compiles and installs"
- echo " update: compiles and installs"
- echo " install: just installs the binaries, which are hopefully ready"
- echo
- exit
- ;;
- esac
- }
- function main {
- checkuser
- checkargs $*
- systemcheck
- repo[1]="q2admin"
- url[1]="https://github.com/hifi/q2admin.git"
- cleanit[1]="make clean"
- makeit[1]="make"
- repo[2]="aq2-tng"
- url[2]="https://github.com/hifi/aq2-tng.git"
- cleanit[2]="cd source && pwd && make clean"
- makeit[2]="cd source && pwd && make"
- repo[3]="q2a_mvd"
- url[3]="https://gitlab.netdome.biz/pklumpp/q2a_mvd.git"
- cleanit[3]=""
- makeit[3]=""
- repo[4]="gs_starter"
- url[4]="https://gitlab.netdome.biz/pklumpp/linux-gameserver-starter.git"
- cleanit[4]=""
- makeit[4]=""
- repo[5]="q2pro"
- url[5]="git://github.com/AndreyNazarov/q2pro.git"
- cleanit[5]="make clean"
- makeit[5]="cp -v ../q2proconfig ./.config && INCLUDES='-DUSE_PACKETDUP=1' make q2proded"
- ARCH=$(uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/)
- for idx in ${!repo[*]}; do
- echo
- # always get sources
- echo "$idx: ${repo[$idx]} from ${url[$idx]}"
- if [ ! -d "${repo[$idx]}" ]; then
- echo "Source dir missing, we get it"
- GIT_SSL_NO_VERIFY=true git clone ${url[$idx]} ${repo[$idx]}
- else
- echo "Source dir exists, we update it"
- cd $cwd/${repo[$idx]}
- GIT_SSL_NO_VERIFY=true git pull
- cd ..
- fi
- if [ $level -gt 2 ]; then
- # clean it
- cd $cwd/${repo[$idx]}
- eval ${cleanit[$idx]}
- fi
- if [ $level -gt 1 ]; then
- # compile it
- cd $cwd/${repo[$idx]}
- eval ${makeit[$idx]}
- fi
- if [ $level -gt 0 ]; then
- # install it
- case "${repo[$idx]}" in
- aq2-tng)
- if [ -f "game$ARCH.so" ]; then
- cp -v game$ARCH.so $q2srv/action/game$ARCH.real.so
- cd ..
- cd action
- cp -v prules.ini $q2srv/action/
- cp -vr doc/ $q2srv/action/
- cp -vr models/ $q2srv/action/
- cp -vr pics/ $q2srv/action/
- cp -vr players/ $q2srv/action/
- cp -vr sound/ $q2srv/action/
- cp -vr tng/ $q2srv/action/
- else
- echo "Whaaat? 'aq2-tng' did not compile. Something was wrong."
- echo
- echo "Please find the error messages of the compilation happening above and"
- echo "file them as an issue at https://github.com/hifi/aq2-tng"
- exit
- fi
- ;;
- q2admin)
- if [ -f "game$ARCH.so" ]; then
- cp -v game$ARCH.so $q2srv/action/game$ARCH.so
- cp -vr plugins/ $q2srv/
- else
- echo "W0000000t .. q2admin did not compile. Something was wrong."
- echo
- echo "It's possible that Lua5.1 is missing. "
- echo "Or you're just using 'install' as parameter and forgot to compile q2admin first."
- echo
- echo "If you are on Debian or Ubuntu, please try to install the following"
- echo "package server wide: liblua5.1-0-dev"
- echo
- echo "To do that, try: 'sudo apt-get install liblua5.1-0-dev'"
- echo
- echo "Then start this script again."
- echo
- exit
- fi
- ;;
- q2a_mvd)
- cp -v mvd.lua $q2srv/plugins/
- if [ ! -f "$q2srv/plugins/mvd_transfer.sh" ]; then
- cp -uv mvd_transfer.sh $q2srv/plugins/
- fi
- ;;
- gs_starter)
- cp -v gs_starter.sh $q2srv/
- if [ ! -f "$q2srv/gs_starter.cfg" ]; then
- cp -v gs_starter.cfg $q2srv
- fi
- ;;
- q2pro)
- if [ -f "q2proded" ]; then
- cp -v q2proded $q2srv/
- else
- echo "Errm... q2pro dedicated did not compile. Something was wrong."
- echo
- echo "It's possible that ZLIB is missing."
- echo "Or you're just using 'install' as parameter and forgot to compile q2proded first."
- echo
- echo "If you are on Debian or Ubuntu, please try to install the following"
- echo "package server wide: zlib1g-dev"
- echo
- echo "To do that, try: 'sudo apt-get install zlib1g-dev'"
- echo
- echo "Then start this script again."
- echo
- exit
- fi
- ;;
- esac
- fi
- cd $cwd
- echo
- done
- echo
- echo "Everything should be in place now."
- echo
- echo "Please review the files h_passwords.cfg, aq2_*.cfg in 'q2srv/action'."
- echo "Other than that ;) read the README file"
- echo
- }
- main $*
- # vim: expandtab tabstop=4 autoindent:
- # kate: space-indent on; indent-width 4; mixedindent off;
|