#!/bin/bash

# Slackware build script for codespell

# Written by B. Watson (urchlay@slackware.uk)

# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

# 20250127 bkw: update for 2.4.0, use the github repo for homepage since
# pypy no longer works without javascript.
# 20240822 bkw: update for 2.3.0.
# 20230820 bkw: update for 2.2.5, *many* thanks to fourtysixandtwo for
# his python3-setuptools-opt build, and for figuring out the bug in
# this build's pyproject.toml.

# 20230115 bkw: update for 2.2.1, not the latest (see README).

# 20210829 bkw:
# - update for 2.1.0.
# - use python3 by default. add PYVER var to force building with 2,
#   but don't document it (nobody should need it).
# - add example/ to the doc dir.

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

PRGNAM=codespell
VERSION=${VERSION:-2.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
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
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L .  -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
        \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +

# write_to directive is broken, turns out we can do without it.
# 20240822 bkw: this is still needed for v2.3.0.
sed -i '/^write_to/d' pyproject.toml

PYVER=$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])')
export PYTHONPATH=/opt/python$PYVER/site-packages/

python3 -m build --no-isolation
python3 -m installer -d "$PKG" dist/*.whl

# upstream removed the man page. including a copy of the 2.1.0 man page,
# which seems to still apply to 2.2.1 (all the options are the same).
mkdir -p $PKG/usr/man/man1
gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README* COPYING $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
