# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
setvar pkgname = 'moonscript'
setvar pkgver = '0.5.0'
setvar pkgrel = '0'
setvar pkgdesc = ""A language that compiles to Lua""
setvar url = ""http://moonscript.org""
setvar arch = ""noarch""
setvar license = ""MIT""
setvar depends = ""lua-alt-getopt lua-filesystem lua-lpeg""
setvar checkdepends = ""lua-busted lua-loadkit""
setvar makedepends = ""luarocks""
setvar subpackages = """"
setvar source = ""$pkgname-$pkgver.tar.gz::https://github.com/leafo/$pkgname/archive/v$pkgver.tar.gz""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

# luajit is not available for s390x
case (CARCH) {
	s390x { setvar _luajit = """"}
	* { setvar checkdepends = ""$checkdepends luajit"," _luajit = ""jit""}
}

setvar _luaversions = ""5.1 5.2 5.3""
for _v in $_luaversions {
	setvar subpackages = ""$subpackages lua$_v-$pkgname:_subpackage""
	setvar checkdepends = ""$checkdepends lua$_v""
}

proc prepare {
	default_prepare

	cd $builddir
	local lver; for lver in $_luaversions {
		local name; for name in moon moonc {
			sed "s|^#!/usr/bin/env lua|#!/usr/bin/lua$lver|" \
				bin/$name > bin/$name-$lver
		}
	}
}

proc check {
	cd $builddir

	local lver; for lver in $_luaversions $_luajit {
		msg "Testing on lua$lver"
		lua$lver /usr/bin/busted
	}
}

proc package {
	cd $builddir

	local name; for name in moon moonc {
		install -D -m 755 bin/$name "$pkgdir"/usr/bin/$name
	}
}

proc _subpackage {
	local lver="${subpkgname:3:3}"
	setvar pkgdesc = ""$pkgdesc (for Lua $lver)""
	setvar depends = ""lua$lver ${depends//lua-/lua$lver-}""
	setvar install_if = ""$pkgname=$pkgver-r$pkgrel lua$lver""
	local lmod_dir="$subpkgdir/usr/share/lua/$lver"

	cd $builddir

	mkdir -p $lmod_dir
	cp -r moon moonscript moon.lua moonscript.lua "$lmod_dir"/
	find $lmod_dir -name "*.moon" -delete

	local name; for name in moon moonc {
		install -D -m 755 bin/$name-$lver "$subpkgdir"/usr/bin/$name-$lver
	}
}

setvar sha512sums = ""f573f9a96502662987de637f7f62b935fab93aa775122c9ae20d98029394e3136e6b519908ce76e1e77c51fbcee162c3ad0aa58eeb1ee56a2b07951437987941  moonscript-0.5.0.tar.gz""