#!/bin/sh # # Slackware build script for `Dungeon Master Java' # # Heavily based on the Slackware 13.0 SlackBuild # Written by Luigi "Reilly" Cozzolino # URL: http://homepage.mac.com/aberfield/dmj/index.html # Packager: Luigi "Reilly" Cozzolino # Exit on most errors: set -e ######## SOURCE PACKAGE SECTION ###################### SRCNAME="dmj" SRCVER="105" SRCTYPE="tgz" SRCPKG="${SRCNAME}${SRCVER}.${SRCTYPE}" SOURCEDIR="DMJ" ######## END SOURCE PACKAGE SECTION ################## ######## SLACKWARE PACKAGE SECTION ################### SLKNAM="dungeon-master-java" SLKVER="1.05" ARCH=${ARCH:-noarch} BUILD="2lc" PKGTYPE="${PKGTYPE:-txz}" ######## END SLACKWARE PACKAGE SECTION ############### CWD=$(pwd) TMP=${TMP:-$HOME/PKGS/${SLKNAM}} PKG=$TMP/package-${SLKNAM} rm -rf $PKG mkdir -p $PKG cd $TMP rm -rf ${SOURCEDIR} clear sleep 1 echo ; echo ; echo echo "+===========================================================" echo -e "|\033[01;32m Building\033[00m \033[01;31m${SRCPKG}\033[00m" echo "+===========================================================" sleep 5 # Checking source package type... [ "${SRCTYPE}" = "tar.gz" -o "${SRCTYPE}" = "tgz" ] && EXTRACT_SRCPKG="tar -xvzf" [ "${SRCTYPE}" = "tar.bz2" -o "${SRCTYPE}" = "tbz" ] && EXTRACT_SRCPKG="tar -xvjf" [ "${SRCTYPE}" = "zip" -o "${SRCTYPE}" = "ZIP" ] && EXTRACT_SRCPKG="unzip" [ "${SRCTYPE}" = "rar" -o "${SRCTYPE}" = "RAR" ] && EXTRACT_SRCPKG="rar x" [ "${SRCTYPE}" = "7z" -o "${SRCTYPE}" = "7Z" ] && EXTRACT_SRCPKG="7z x" # and finally extract it: ${EXTRACT_SRCPKG} $CWD/${SRCPKG} || exit 1 cd ${SOURCEDIR} # Make sure ownerships and permissions are sane: chown -R root:root . find . -perm 666 -exec chmod 644 {} \; find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; # Set some varable for destination package: PKG_DIR="usr/share/games/${SLKNAM}" # Add directory and file structure: mkdir -p $PKG/${PKG_DIR} cp -a * $PKG/${PKG_DIR} # Add a shell script necessary to run `Dungeon Master Java' properly: mkdir -p $PKG/usr/games cat > $PKG/usr/games/${SLKNAM} << "EOF" #!/bin/sh # Shell script for Dungeon Master Java # Author: Luigi "Reilly" Cozzolino - Sep 2009 # Set some variables: DMJ_DIR="/usr/share/games/dungeon-master-java" DMJ_BIN="dmnew" DMJ_EDITOR="DMEditor" DMJ_HOME="$HOME/.dungeon-master-java" # If `home-gamedir' environment does not exist then create it: if [ ! -d ${DMJ_HOME} ]; then mkdir -p ${DMJ_HOME} ( cd ${DMJ_HOME} ln -s ${DMJ_DIR}/* . rm Dungeons Saves mkdir Dungeons ln -s ${DMJ_DIR}/Dungeons/* ./Dungeons cp -a ${DMJ_DIR}/Saves . cp -a --remove-destination ${DMJ_DIR}/dmnew.cfg . ) fi # Enter in a `home-gamedir' environment and launch a program from here: case "$1" in dm_game) cd ${DMJ_HOME} java ${DMJ_BIN} ;; dm_editor) cd ${DMJ_HOME} java ${DMJ_EDITOR} ;; *) echo $"Usage: $0 {dm_game|dm_editor}" exit 1 esac exit $? EOF # Change perms: chmod 755 $PKG/usr/games/* # Add a desktop file: mkdir -p $PKG/usr/share/applications cat > $PKG/usr/share/applications/${SLKNAM}.desktop << "EOF" [Desktop Entry] Encoding=UTF-8 Name=Dungeon Master Java GenericName= Exec=dungeon-master-java dm_game Terminal=false Type=Application Categories=Game;RPG; Icon=/usr/share/games/dungeon-master-java/Icons/dmjicon.ico StartupNotify=true EOF # Add a desktop file for `game-editor': mkdir -p $PKG/usr/share/applications cat > $PKG/usr/share/applications/${SLKNAM}_editor.desktop << "EOF" [Desktop Entry] Encoding=UTF-8 Name=Dungeon Master Java Editor GenericName= Exec=dungeon-master-java dm_editor Terminal=false Type=Application Categories=Game;RPG; Icon=/usr/share/games/dungeon-master-java/Icons/dmjicon.ico StartupNotify=true EOF # Add a documentation directory: mkdir -p $PKG/usr/doc/${SLKNAM}-${SLKVER} ( cd $PKG/usr/doc/${SLKNAM}-${SLKVER} ln -s /${PKG_DIR}/{install.txt,readme.txt} . ) cat $CWD/${SLKNAM}.SlackBuild > $PKG/usr/doc/${SLKNAM}-${SLKVER}/${SLKNAM}.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $TMP/${SLKNAM}-${SLKVER}-${ARCH}-${BUILD}.${PKGTYPE} # Checksum `md5' file creation: ( cd $TMP ; md5sum ${SLKNAM}-${SLKVER}-${ARCH}-${BUILD}.${PKGTYPE} > ${SLKNAM}-${SLKVER}-${ARCH}-${BUILD}.md5 ) # Final touches: ( cd $TMP ; cat $PKG/install/slack-desc | grep "^${SLKNAM}:" > ${SLKNAM}-${SLKVER}-${ARCH}-${BUILD}.txt ) # Clean up the extra stuff: if [ "$1" = "--cleanup" -o "$1" = "-c" ]; then rm -rf $TMP/${SOURCEDIR} rm -rf $PKG fi