#!/bin/bash # generates otclient zip package for win32 # by edubart :) # TODO: the following options # --gitroot - clone a different url, the default is git://github.com/edubart/otclient.git # --platform - compile for i486-mingw32, i586-msvc-mingw32 or linux # --branch - use sources from a specific branch, the default is master # --name - change .exe and folder name, the default is otclient # --protocol - game protocol, the default is 860 # --suffix - override suffix, the default is the date # --copy-tibiafiles - copy Tibia.spr and Tibia.dat from folder # --github-upload - upload the zip to github # --scp-upload - upload the zip to a shell via scp gitroot="git://github.com/edubart/otclient.git" name="otclient" protocol=860 platform="i486-mingw32" tibiafiles_folder="$HOME/projects/otclient/modules/game_tibiafiles" upload_to="root@myserver.com:/var/www/downloads/" pkg_suffix="-snapshot-`date +%Y%m%d`-protocol${protocol}-win32" use_spr=false upload=false make_jobs=8 srcdir=`pwd` if [ -d $name ]; then cd $name git pull || exit else git clone $gitroot $name || exit cd $name fi gitdir=`pwd` revision=`git rev-list --all | wc -l` commit=`git describe --dirty --always` rm -rf build mkdir build cd build cmake -DCMAKE_TOOLCHAIN_FILE=$gitdir/src/framework/cmake/${platform}_toolchain.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_REVISION=$revision \ -DBUILD_COMMIT=$commit \ -DBOT_PROTECTION=OFF \ -DPROTOCOL=$protocol \ .. || exit make "-j${make_jobs}" || exit pkgdir="$name$pkg_suffix" pkgzip="$pkgdir.zip" cd $srcdir rm -rf $pkgdir mkdir $pkgdir cd $pkgdir cp -R $gitdir/modules . cp $gitdir/build/*.exe . cp $gitdir/build/*.map . cp $gitdir/LICENSE . cp $gitdir/README.rdoc . if $use_spr; then cp $dat_folder/*.spr modules/game_tibiafiles/ cp $dat_folder/*.dat modules/game_tibiafiles/ fi cd $srcdir rm -f $pkgzip zip -9 -qr $pkgzip $pkgdir echo "Package generated to $pkgzip" if $upload; then scp $srcdir/$pkgzip $upload_to fi