# Maintainer: Caleb Maclennan <caleb@alerque.com>

pkgname=listmonk
pkgver=2.0.0.r82.d42c676
pkgrel=1
pkgdesc='Self-hosted newsletter and mailing list manager with a modern dashboard'
arch=(x86_64)
url=https://listmonk.app
license=(AGPL3)
depends=(postgresql)
makedepends=(go node-gyp 'nodejs<17' yarn git)
backup=(etc/listmonk/config.toml)
install=$pkgname.install
options=("!lto")
_commit=d42c676503b42232e25620ab17d74f288ddd1109  # master
source=("git+https://github.com/knadh/$pkgname.git#commit=$_commit"
	# "$pkgname-$pkgver.tar.gz::https://github.com/knadh/$pkgname/archive/v$pkgver.tar.gz"
        "$pkgname.conf"
        "$pkgname.service")
sha256sums=('SKIP'
            '5cfc186438df2408ed88a5bec3a9a4b5f2afb0d3aec41c4cc63b2f5eb810b3cb'
            '809ede70c932183889b2fa567b340fb82cce1ada76c7b0a0b9efb82b87c92fa0')

pkgver() {
	cd "$srcdir/${pkgname}"
	printf "%s" "$(git describe --long | sed 's/^v//g;s/\([^-]*-\)g/r\1/;s/-/./g')"
}

prepare() {
    # cd "$pkgname-$pkgver/frontend"
    cd "$pkgname/frontend"
    export YARN_CACHE_FOLDER="$srcdir/node_modules"
    yarn install --frozen-lockfile
}

build() {
    # cd "$pkgname-$pkgver"
    cd "$pkgname"

    export CGO_CPPFLAGS="${CPPFLAGS}"
    export CGO_CFLAGS="${CFLAGS}"
    export CGO_CXXFLAGS="${CXXFLAGS}"

    go build \
        -trimpath \
        -buildmode=pie \
        -mod=readonly \
        -modcacherw \
        -ldflags "-extldflags '$LDFLAGS' -X 'main.buildString=Arch Linux AUR v$pkgver-$pkgrel' -X 'main.versionString=v$pkgver' -X 'main.frontendDir=frontend/dist'" \
        -o $pkgname \
        cmd/*.go
    export YARN_CACHE_FOLDER="$srcdir/node_modules"
    export VUE_APP_VERSION="v$pkgver"
    pushd frontend
    yarn build
}

check() {
    # cd "$pkgname-$pkgver"
    cd "$pkgname"
    go test ./...
}

package() {
    # cd "$pkgname-$pkgver"
    cd "$pkgname"
    install -Dm755 -t "$pkgdir/usr/bin" $pkgname
    install -Dm644 config.toml.sample "$pkgdir/etc/$pkgname/config.toml"
    install -Dm644 -t "$pkgdir/usr/lib/systemd/system/" "../$pkgname.service"
    install -Dm644 -t "$pkgdir/usr/lib/sysusers.d/" "../$pkgname.conf"
    install -Dm644 -t "$pkgdir/usr/share/$pkgname/" \
	config.toml.sample \
        schema.sql \
        queries.sql
    mkdir -p "$pkgdir/usr/share/$pkgname/frontend/dist"
    cp -a static "$pkgdir/usr/share/$pkgname/"
    install -Dm644 -t "$pkgdir/usr/share/$pkgname/static" config.toml.sample
    cp -a frontend/dist/ "$pkgdir/usr/share/$pkgname/frontend/"
    cp -a i18n "$pkgdir/usr/share/$pkgname/"
}
