# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgname=golang-deepin-lib
pkgver=5.7.12
pkgrel=1
pkgdesc='A library containing many useful go routines for things such as glib, gettext, archive, graphic,etc.'
arch=('any')
url="https://github.com/linuxdeepin/go-lib"
license=('GPL3')
depends=('dbus' 'go' 'libpulse' 'gdk-pixbuf2' 'gdk-pixbuf-xlib' 'mobile-broadband-provider-info'
         'libx11' 'golang-gopkg-alecthomas-kingpin.v2' 'golang-deepin-gir'
         'golang-github-linuxdeepin-go-x11-client' 'golang-golang-x-net' 'golang-golang-x-image')
         # 'golang-github-cryptix-wav' not packaged yet, paused until our go packaging standards formed
checkdepends=('iso-codes' 'golang-gopkg-check.v1' 'git') # git needed only for go get
replaces=('deepin-go-lib')
conflicts=('deepin-go-lib')
provides=('deepin-go-lib')
source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/go-lib/archive/$pkgver.tar.gz")
sha512sums=('3d68b29abe783d49cbf504564432729fc77fb14f8eea848fe6f356f69b67479bdfda2d5003537319e2d6e9e79d5677fac43ba94660cac9cd825e190e397de299')

export GO111MODULE=off

prepare() {
  cd go-lib-$pkgver
  sed -i 's/int connect_timeout;/extern int connect_timeout;/' pulse/dde-pulse.h
}

check() {
  export GOPATH="$srcdir/build:/usr/share/gocode"
  mkdir -p "$srcdir"/build/src/pkg.deepin.io
  cp -a "$srcdir"/go-lib-$pkgver "$srcdir"/build/src/pkg.deepin.io/lib
  cd "$srcdir"/build/src/pkg.deepin.io/lib
  # TODO: make packages for them
  go get github.com/cryptix/wav github.com/smartystreets/goconvey/convey github.com/mozillazg/go-pinyin gopkg.in/yaml.v3 github.com/godbus/dbus github.com/fsnotify/fsnotify
  # TODO: figure out why pulse tests hang
  # passwd: test needs to access /etc/passwd
  # group & timer & log & dbus: build failed
  # shell: TestEncode failed
  go test -v $(go list ./... | grep -v -e lib/pulse -e lib/users/passwd -e lib/users/group -e lib/timer -e lib/log -e lib/dbus -e lib/shell)
}

package() {
  mkdir -p "$pkgdir"/usr/share/gocode/src/pkg.deepin.io
  cp -a "$srcdir"/go-lib-$pkgver "$pkgdir"/usr/share/gocode/src/pkg.deepin.io/lib

  rm -r "$pkgdir"/usr/share/gocode/src/pkg.deepin.io/lib/debian
}
