# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=awall
pkgver=1.14.0
pkgrel=0
pkgdesc="Alpine Wall"
url="https://gitlab.alpinelinux.org/alpine/awall"
_luaver=5.4
arch="noarch"
license="GPL-2.0-only"
replaces="awall-nat"
depends="drill ipset iptables lua$_luaver lua$_luaver-alt-getopt
	lua$_luaver-cjson lua$_luaver-pc lua$_luaver-posix lua-schema
	lua$_luaver-stringy lua$_luaver-lyaml xtables-addons"
subpackages="$pkgname-masquerade $pkgname-policies"
triggers="$pkgname.trigger=/usr/share/awall"
source="https://gitlab.alpinelinux.org/alpine/awall/-/archive/v$pkgver/awall-v$pkgver.tar.bz2
	awall-init
	setup-firewall
	"
builddir=$srcdir/awall-v$pkgver

build() {
	sed -i -e "1,1s:lua:lua$_luaver:" awall-cli
}

check() {
	make LUA_VERSION=$_luaver check
}

package() {
	make "ROOT_DIR=$pkgdir" LUA_VERSION=$_luaver install
	install -D "$srcdir"/awall-init "$pkgdir"/usr/libexec/awall-init
}

masquerade() {
	depends=awall
	for file in lua/$_luaver/awall/modules/masquerade.lua awall/mandatory/masquerade.json; do
		local path=usr/share/$file
		install -d "$subpkgdir/$(dirname $path)"
		mv "$pkgdir/$path" "$subpkgdir/$path"
	done
}

policies() {
	depends=awall
	local dir=usr/share/awall/optional
	install -d "$subpkgdir"/$dir
	mv "$pkgdir"/$dir/*.json "$subpkgdir"/$dir
	install -D "$srcdir"/setup-firewall "$subpkgdir"/usr/sbin/setup-firewall
}

sha512sums="
5e183dffc6022291c91543e26418b9d8496a0a82a637c048e3229a0962290ee2e408448ea6595ab1acef56cc81c0e1e38729b7799e127d13d14c1b8d1f36271c  awall-v1.14.0.tar.bz2
e83ea3281c298092530e45fa5b62f6f85b9e5109b11e109799465ea832608294c7d9c4c3f5b0f321dfc0e82040daf3a17d066e9dea65cb0dbae2c453ea9e62cd  awall-init
b4083809b71c4b825f50db586674f696ab71f5e478ed85745ae11376bcc7d3d626e089c9894d6d6f10bf8c38bd930b26d7903dcb906780cbad8561ffd372875f  setup-firewall
"
