Procházet zdrojové kódy

options for the script

Paul Klumpp před 11 roky
rodič
revize
fd36b10773
1 změnil soubory, kde provedl 208 přidání a 142 odebrání
  1. 208 142
      q2compile/make_and_put_all.sh

+ 208 - 142
q2compile/make_and_put_all.sh

@@ -6,150 +6,216 @@ q2srv=$cwd/../q2srv/
 cd $cwd
 
 
-if [ "${USER}" == "root" ]; then
-	echo "Nono! Don't run this as root! Don't!"
-	echo "Switch to a normal user!"
-	echo
-	exit
-fi
+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
+    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 {
+    if [ "$1" == "" ]; then
+        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
+    fi
+
+    case "$1" in
+        clean)
+            level=3
+        ;;
+        update)
+            level=2
+        ;;
+        install)
+            level=1
+        ;;
+    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]="git://b4r.org/q2a_mvd"
+    cleanit[3]=""
+    makeit[3]=""
+
+    repo[4]="gs_starter"
+    url[4]="git://b4r.org/gs_starter"
+    cleanit[4]=""
+    makeit[4]=""
+
+    repo[5]="q2pro"
+    url[5]="http://git.skuller.net/q2pro"
+    cleanit[5]="make clean"
+    makeit[5]="cp -v ../q2proconfig ./.config && make clean && 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 clone ${url[$idx]}
+        else
+            echo "Source dir exists, we update it"
+            cd $cwd/${repo[$idx]} 
+            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)
+                    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/
+                ;;
+                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)
+                    cp -v q2proded $q2srv/
+                ;;
+
+            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
+
 }
 
-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
-
-
-repo[1]="q2admin"
-url[1]="https://github.com/hifi/q2admin.git"
-makeit[1]="make clean && make"
-
-repo[2]="aq2-tng"
-url[2]="https://github.com/hifi/aq2-tng.git"
-makeit[2]="cd source && pwd && make clean && make"
-
-repo[3]="q2a_mvd"
-url[3]="git://b4r.org/q2a_mvd"
-makeit[3]=""
-
-repo[4]="gs_starter"
-url[4]="git://b4r.org/gs_starter"
-makeit[4]=""
-
-repo[5]="q2pro"
-url[5]="http://git.skuller.net/q2pro"
-makeit[5]="cp ../q2proconfig ./.config && make clean && 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
-
-	# get it
-	echo "$idx: ${repo[$idx]} from ${url[$idx]}"
-	if [ ! -d "${repo[$idx]}" ]; then
-		git clone ${url[$idx]}
-	else
-		echo "Dir exists, we begin making"
-		cd $cwd/${repo[$idx]} 
-		git pull
-		cd ..
-	fi
-
-	# make it
-	cd $cwd/${repo[$idx]}
-	eval ${makeit[$idx]}
-
-	# install it
-	case "${repo[$idx]}" in
-		aq2-tng)
-			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/
-		;;
-		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 "It is most possible because Lua5.1 is missing."
-				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)
-			cp -v q2proded $q2srv/
-		;;
-
-	esac
-
-	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;