# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=lua-dbi
_pkgname=luadbi
pkgver=0.7.4
pkgrel=0
pkgdesc="database interface library for Lua"
url="https://github.com/mwild1/luadbi"
arch="all"
license="MIT"
makedepends="mariadb-connector-c-dev libpq-dev sqlite-dev"
_subpackages="$pkgname-mysql $pkgname-postgresql $pkgname-sqlite3"
source="$pkgname-$pkgver.tar.gz::https://github.com/mwild1/$_pkgname/archive/v$pkgver/$_pkgname.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
options="!check"  # provided tests require running DBs

_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
	makedepends="$makedepends lua$_v-dev"
	for _subpkg in $_subpackages; do
		subpackages="$subpackages lua$_v-${_subpkg#lua-}:_subpackage"
	done
done

prepare() {
	default_prepare

	local lver; for lver in $_luaversions; do
		cp -r "$builddir" "$builddir-$lver"
	done
}

build() {
	local lver; for lver in $_luaversions; do
		msg "Building for Lua $lver..."
		make -C "$builddir-$lver" LUA_V=$lver mysql
		make -C "$builddir-$lver" LUA_V=$lver psql
		make -C "$builddir-$lver" LUA_V=$lver sqlite3
	done
}

package() {
	mkdir -p "$pkgdir"
}

_subpackage() {
	local lver="${subpkgname:3:3}"
	local db=${subpkgname##*-}
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname-$db/$pkgver-2"
	pkgdesc="$pkgdesc $lver and $db"
	depends="lua$lver"
	install_if="$pkgname=$pkgver-r$pkgrel lua$lver"

	cd "$builddir-$lver"
	make LUA_V=$lver DESTDIR="$subpkgdir" install_${db/postgresql/psql}

	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}

sha512sums="
9614b19c4e2fd134ec4bb196fa67f498a58ff66f06144a42d390ac7a52bab66293e4961f4d4227ea3b24b0662764de2e6497bc40d4976933aa7ffff5ec0929ec  lua-dbi-0.7.4.tar.gz
"
