_pkgname=knotserver
pkgname=${_pkgname}-git
pkgdesc='git collaboration platform built on ATproto'
pkgver=1.9.1.alpha.r48.g8f7177a
pkgrel=1
license=(MIT)
arch=(x86_64)
url=https://tangled.org/tangled.org/core
depends=(git)
conflicts=(knotserver)
makedepends=(go)
options=(strip)
install=${_pkgname}.install
source=("tangled::git+$url"
		${_pkgname}.service
		${_pkgname}-sshd.conf
		${_pkgname}-tmpfiles.conf)
sha256sums=('SKIP'
            '91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8'
            '825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8'
            '21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394')

pkgver() {
	cd ${srcdir}/tangled
	git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

build() {
	mkdir -p ${srcdir}/build

	export CGO_ENABLED=1
	export CGO_CPPFLAGS="${CPPFLAGS}"
	export CGO_CFLAGS="${CFLAGS}"
	export CGO_CXXFLAGS="${CXXFLAGS}"
	export CGO_LDFLAGS="${LDFLAGS}"
	export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"

	cd ${srcdir}/tangled
	go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=${pkgver}" -o "${srcdir}/build/knot" ./cmd/knot
}

package() {
	install -Dm644 "${srcdir}/${_pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service"
	install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf"
	install -Dm644 "${srcdir}/${_pkgname}-sshd.conf" "${pkgdir}/usr/lib/systemd/sshd_config.d/${_pkgname}.conf"
	install -Dm755 "${srcdir}/build/knot" "${pkgdir}/usr/bin/knot"
	install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE"
}
