# Contributor: qaqland <qaq@qaq.land>
# Maintainer: Celeste <cielesti@protonmail.com>
maintainer="Celeste <cielesti@protonmail.com>"
pkgname=ktistec
pkgver=2.4.2
pkgrel=0
pkgdesc="Single-user ActivityPub server written in Crystal"
url="https://github.com/toddsundsted/ktistec"
arch="x86_64 aarch64" # crystal
license="AGPL-3.0-or-later"
depends="tzdata"
makedepends="
	crystal
	libxml2-dev
	musl-utils
	openssl-dev
	shards
	sqlite-dev
	"
checkdepends="yaml-dev"
options="net"
install="$pkgname.pre-install"
pkgusers="ktistec"
pkggroups="ktistec"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/toddsundsted/ktistec/archive/refs/tags/v$pkgver.tar.gz
	ktistec.initd
	ktistec.confd
	"
options="!check" # TODO: spectator macro incompatibilities with Crystal 1.13.1

export CRYSTAL_CACHE_DIR="${CRYSTAL_CACHE_DIR:-"$srcdir/.cache"}"
export SHARDS_CACHE_PATH="${SHARDS_CACHE_PATH:-"$srcdir/.cache"}"

prepare() {
	default_prepare

	shards install --frozen
}

build() {
	crystal build --no-debug --release src/ktistec/server.cr
}

check() {
	crystal spec -v
}

package() {
	install -Dvm755 server "$pkgdir"/usr/bin/ktistec
	install -dvm750 -o ktistec -g ktistec "$pkgdir"/var/lib/ktistec

	cp -a etc public "$pkgdir"/var/lib/ktistec/
	ln -sv public/uploads "$pkgdir"/var/lib/ktistec/
	chown -R ktistec:ktistec "$pkgdir"/var/lib/ktistec/public/uploads

	install -Dm755 "$srcdir"/ktistec.initd "$pkgdir"/etc/init.d/ktistec
	install -Dm644 "$srcdir"/ktistec.confd "$pkgdir"/etc/conf.d/ktistec
}

sha512sums="
68d9dfabbf282206f7749c34074d350279f123c1dc98afab60d8303813e954412730cc5dd92fca06c82c097f317f6a0567ce5a6f892e3ef5ab2ef226563aa0cb  ktistec-2.4.2.tar.gz
f2520a9306daf544fec456e739abf1bb1e1a188992bbd8ef4a3ce3915a342209521ceedef8fc871c659d12ca57914825a8dcebc04e0114147fe32fc7de1dcabb  ktistec.initd
b8971fe3a504df6173015a33a8edd64d74144128a1247328067fe82bee796d5faa55fa00de01690fedd7a027fb55e584b98b20277faa4140b913f52e4ec094e3  ktistec.confd
"
