pkgname=qui pkgver=1.13.0 pkgrel=1 pkgdesc="A fast, modern web interface for qBittorrent" arch=('x86_64') url="https://github.com/autobrr/qui" license=('GPL-2.0-or-later') makedepends=('git' 'go>=1.25' 'nodejs' 'pnpm') source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz" "$pkgname.service" "$pkgname.sysusers" "$pkgname.tmpfiles") sha256sums=('a9e49979b0e0610d39b165be5a7fcdc7f72698a986777428407129faf6eacd68' 'd52299510cf4845f0514eefd492b01c33bc2cd2819c2be9dc157f50f67462bd2' '149029ffcc078976e0ac6cd1f002b25221bb1561a1c979362dc27d9e6ad5dda3' '3bacde8867fbb7b6d566666b635589579c1cc079cd23418284f43a7b37f0c41b') prepare() { cd "$pkgname-$pkgver" mkdir -p build/ # Retrieve Go dependencies export GOPATH="$srcdir" # Don't proxy connection through Google export GOPROXY=direct go mod download -modcacherw # Retrieve NodeJS dependencies cd web pnpm install } build() { cd "$pkgname-$pkgver" # Build frontend pnpm --dir web run build # Set Go flags 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" # Build backend go build -o build ./cmd/... # Generate shell completions "build/$pkgname" completion bash > bash_completion "build/$pkgname" completion zsh > zsh_completion "build/$pkgname" completion fish > fish_completion } check() { cd "$pkgname-$pkgver" go test ./... } package() { # systemd files install -Dm755 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service" install -Dm755 $pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" install -Dm755 $pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" # Binary install -Dm755 "$pkgname-$pkgver/build/$pkgname" "$pkgdir/usr/bin/$pkgname" # Shell Completions install -Dm644 bash_completion "$pkgdir/usr/share/bash-completion/completions/$pkgname" install -Dm644 zsh_completion "$pkgdir/usr/share/zsh/site-functions/$pkgname" install -Dm644 fish_completion "$pkgdir/usr/share/fish/vendor_completions.d/$pkgname.fish" }