#!/bin/bash # # teeworlds.SlackBuild # code: Vicious (michal@scxd.info); improvements: Zielony (e-pl@o2.pl) set -e # PACKAGE GENERAL INFO [EDIT] PKGNAME=teeworlds VERSION=0.4.2 BUILD=1X ARCH=i686 URL=http://www.teeworlds.com/files/$PKGNAME-$VERSION-src.tar.gz CWD=`pwd` TMP=/tmp/$PKGNAME if [ -e $TMP/$PKGNAME-$VERSION/'Makefile' ]; then cd $TMP/$PKGNAME-$VERSION make else if [ ! -d $TMP/$PKGNAME-$VERSION ]; then rm -rf $TMP/package mkdir -p $TMP/package/install # PACKAGE DESCRIPTION [EDIT] cat << SLACKDESC | fmt -w $(( 80 - `echo $PKGNAME | wc -c` - 3 )) | perl -pe "s/^/$PKGNAME: /" > $TMP/package/install/slack-desc Teeworlds (2D shooter) Teeworlds is a 2D shooter with support for multiplayer. Package prepared by Heniek (heniekk@gmail.com) SLACKDESC cd $TMP # step 1: DOWNLOAD SOURCE PKGFNAME=`ls -t | grep -i $PKGNAME*.t*z* | head -1` if [ -z $PKGFNAME ]; then ( wget -c $URL -P $TMP -O $PKGNAME-$VERSION.${URL//*.} ) # step 2: UNPACK SOURCE AND COMPILE PKGFNAME=`ls -t | grep -i $PKGNAME*.t*z* | head -1` fi EXTENSION=`echo ${PKGFNAME//*.}` if [ $EXTENSION = "bz2" ]; then tar jxvf $PKGFNAME -C $TMP else tar xvfz $PKGFNAME -C $TMP fi DIRNAME=`tar tf $PKGFNAME | head -1` echo $DIRNAME | grep '/' && DIRNAME=${DIRNAME%${DIRNAME#*/}} if [ $DIRNAME != $PKGNAME-$VERSION/ ]; then mv $DIRNAME $PKGNAME-$VERSION; fi chown root:root $TMP -R fi cd $TMP/$PKGNAME-$VERSION wget -c http://www.teeworlds.com/files/bam.zip unzip bam.zip cd bam/ sh ./make_unix.sh cd ../ sed -i -e "s#data/#/usr/share/teeworlds/#g" \ datasrc/data.ds \ src/engine/e_map.c \ src/engine/client/ec_client.c \ src/engine/server/es_server.c \ src/game/editor/ed_editor.cpp \ src/game/client/gc_hooks.cpp \ src/game/client/gc_map_image.cpp \ src/game/client/gc_skin.cpp ./bam/src/bam server_release client_release mkdir -p $TMP/package/usr/share/$PKGNAME cp -af data/* $TMP/package/usr/share/$PKGNAME/ install -D -m755 $PKGNAME $TMP/package/usr/bin/$PKGNAME install -D -m755 ${PKGNAME}_srv $TMP/package/usr/bin/${PKGNAME}_srv mkdir -p $TMP/package/usr/doc/$PKGNAME-$VERSION cp -af license.txt readme.txt $TMP/package/usr/doc/$PKGNAME-$VERSION fi mkdir -p $TMP/package/usr/share/applications cat << DESKTOP > $TMP/package/usr/share/applications/teeworlds.desktop [Desktop Entry] Version=1.0 Type=Application Icon=teeworlds Exec=teeworlds Terminal=false StartupNotify=false Name=TeeWorlds GenericName=Arcade Game Categories=Game;ArcadeGame; DESKTOP wget http://heni0.fm.interia.pl/teeworlds.png.gz gunzip teeworlds.png.gz install -D -m644 teeworlds.png $TMP/package/usr/share/pixmaps/teeworlds.png # step 3: STRIP BINARIES & GZIP MANUALS ( cd $TMP/package find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) ( gzip $TMP/package/usr/man/man?/* ) # step 4: CREATE PACKAGE & CLEAN TMP cd $TMP/package if [ `ls | wc -m` -le 8 ]; then echo "Brak plików pakietu!" else ( requiredbuilder -y -s $TMP/package/install $TMP/$PKGNAME-$VERSION ) makepkg -l y -c n $CWD/$PKGNAME-$VERSION-$ARCH-$BUILD.tgz rm -rf $TMP fi