#!/bin/sh

# Copyright 2008, 2009, 2016, 2018, 2026  Patrick J. Volkerding, Sebeka, Minnesota, USA
# 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.

CWD=$(pwd)
TMP=${TMP:-/var/cache/snukware/tmp}
PKG=$TMP/package-aspell-dict
OUTPUT=${OUTPUT:-/var/cache/snukware/l}
TAG=${TAG:-_snuk}
# architecture detection
if [ -z "$ARCH" ]; then
  case "$(uname -m)" in
    i?86) ARCH=i686 ;;
    arm*) readelf /usr/bin/file -A | grep -E -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
    *) ARCH=$(uname -m) ;;
  esac
  export ARCH
fi

cd src

############################################################
# NEW: selection logic (safe, backward compatible)
############################################################

if [ -n "$1" ]; then
  echo "Building selected aspell dictionaries: $*"
  LIST=""

  for sel in "$@"; do
    # match upstream filenames like aspell6-de, aspell5-en, etc.
    LIST="$LIST aspell*${sel}*.bz2"
  done
else
  LIST="aspell*bz2"
fi

############################################################

for file in $LIST ; do

  # pt_PT-preao requires different package name handling:
  if echo $file | grep -q pt_PT-preao ; then
    NAME=$(echo $file | cut -f 1-3 -d -)-$(echo $file | cut -f 4- -d - | rev | cut -b9- | rev | tr '[\-]' '[_]')
  else
    NAME=$(echo $file | cut -f 1-2 -d -)-$(echo $file | cut -f 3- -d - | rev | cut -b9- | rev | tr '[\-]' '[_]')
  fi

  if [ -r $CWD/build/$(basename $file | cut -f 1,2 -d -) ]; then
    BUILD="$(cat $CWD/build/$(basename $file | cut -f 1,2 -d -))"
  else
    BUILD=1
  fi

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

  rm -rf $(basename $file .tar.bz2)
  tar xjf $CWD/src/$file
  cd $(basename $file .tar.bz2)

  chown -R root:root .

  ./configure || exit 1
  make || exit 1
  make install DESTDIR=$PKG || exit 1

  # uniform package name
  NAME=$(echo $NAME | sed 's/aspell5/aspell/' | sed 's/aspell6/aspell/')

  mkdir -p $PKG/usr/doc/${NAME}
  cp -a README* Copyright* COPYING* $PKG/usr/doc/${NAME} 2>/dev/null

  if [ -d doc ]; then
    cp -a doc/* $PKG/usr/doc/${NAME}
  fi

  chmod 644 $PKG/usr/doc/${NAME}/* 2>/dev/null

  mkdir -p $PKG/install

  if echo $file | grep -q pt_PT-preao ; then
    SLACKDESC=$(echo $NAME | cut -f 1-3 -d -)
  else
    SLACKDESC=$(echo $NAME | cut -f 1-2 -d -)
  fi

  cat <<EOF > $PKG/install/slack-desc
${SLACKDESC}: ${SLACKDESC}
${SLACKDESC}:
${SLACKDESC}: $(head -n 1 README 2>/dev/null).
${SLACKDESC}:
${SLACKDESC}:
${SLACKDESC}:
${SLACKDESC}:
${SLACKDESC}:
${SLACKDESC}:
${SLACKDESC}:
EOF

  cd $PKG
  makepkg -l y -c n $OUTPUT/${NAME}-$ARCH-$BUILD$TAG.txz

done || exit 1
