summaryrefslogtreecommitdiffstats
path: root/games/cataclysmdda/cataclysmdda.SlackBuild
blob: bb2e7795c329fee35ac59255a2564c5273decbb0 (plain)
#!/bin/bash

# Slackware build script for Cataclysm: DDA
# (based on the binary releases)

# Copyright 2023 Mavridis Philippe <mavridisf@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

cd $(dirname $0); CWD=$(pwd)

PRGNAM=cataclysmdda
VERSION=${VERSION:-0.G}
PKG_BUILD=${PKG_BUILD:-2023-03-01-0054}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

ARCH=${ARCH:-$(uname -m)}
if [ "$ARCH" != "x86_64" ]
then
  echo "Binary releases are only available for x86-64 platform." >2
  exit 1
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP

# BUG: for some reason the extracted directory is named after older version 0.F
#      and not current version 0.G
rm -rf $PRGNAM-0.F
tar xvf $CWD/cdda-linux-curses-x64-$PKG_BUILD.tar.gz
cd $PRGNAM-0.F
chown -R root:root .

strip --strip-unneeded json_formatter.cgi 2>/dev/null || true

mkdir -p $PKG/opt/$PRGNAM
cp -ra * $PKG/opt/$PRGNAM

# Modify launcher to store data in home directory
sed -i 's:exec ./$BIN:exec ./$BIN --userdir "$HOME/.catadda":' \
  $PKG/opt/$PRGNAM/cataclysm-launcher

# BUG: override TERM variable
sed -i '2i export TERM="xterm"' \
  $PKG/opt/$PRGNAM/cataclysm-launcher

# Create convenient launcher symlink in /usr/bin
mkdir -p $PKG/usr/bin
cd $PKG/usr/bin
ln -s ../../opt/$PRGNAM/cataclysm-launcher cataclysm

# Move documentation into /usr/doc
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cd $PKG/usr/doc/$PRGNAM-$VERSION
mv $PKG/opt/$PRGNAM/doc/* .
rmdir $PKG/opt/$PRGNAM/doc
rm JSON_LOADING_ORDER.md
ln -s ../../../opt/$PRGNAM/data/json/LOADING_ORDER.md JSON_LOADING_ORDER.md
cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.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 $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE