_pkgname=knotserver
pkgname=${_pkgname}-git
pkgdesc='git collaboration platform built on ATproto'
pkgver=1.2.1.alpha.r1.gf44471b
pkgrel=1
license=(MIT)
arch=(x86_64)
url=https://tangled.sh/@tangled.sh/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'
            '8d243e1bc0d2e51079550929019d18811679127e6af6aabeed60cd907ffaab32'
            '8b121f30276d83ca52f793e708731fd6985118a2ff2105cd3f603523dc11d8d8'
            '30d0b9df2419c22f930649273e006faa1bdab740f03c47d740c941db45dc951e')

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 -o "${srcdir}/build/knotserver" ./cmd/knotserver
	go build -o "${srcdir}/build/repoguard" ./cmd/repoguard
	go build -o "${srcdir}/build/keyfetch" ./cmd/keyfetch
}

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/knotserver" "${pkgdir}/usr/bin/knotserver"
	install -Dm755 "${srcdir}/build/repoguard" "${pkgdir}/usr/bin/repoguard"
	install -Dm755 "${srcdir}/build/keyfetch" "${pkgdir}/usr/bin/keyfetch"
	install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/knotserver/LICENSE"
}
