# Template file for 'babashka'
pkgname=babashka
version=1.12.194
revision=1
create_wrksrc=yes
hostmakedepends="mandrel leiningen git"
makedepends="zlib-devel"
checkdepends="clojure curl tar"
short_desc="Native, fast starting Clojure interpreter for scripting"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="EPL-1.0"
homepage="https://babashka.org/"
changelog="https://github.com/babashka/babashka/raw/master/CHANGELOG.md"
_sci_commit=55a76e540c5ce65d8a61982b2f942fcf63776850
_babashka_curl_commit=e936acd40544eb637b6041c7e89454b21eb7ee34
_babashka_nrepl_commit=edd3d613bfb9bf3adabfd0bda5c3f5c6ee85ec20
_depstar_commit=2bf9d3c9f15298d7dd9de033674a42f830e23d6f
_process_commit=5160f98666363afeeea9f728d12e7f0fd39263cd
_pods_commit=717cef7af5cb1c1b091bd10e012b2e71b7b8b9bc
_deps_clj_commit=4fd62578e215b7341dd6c818259e47c461949573
_fs_commit=99d6a3b2f55b851a6949ed6eee31412b299dcf01
_babashka_core_commit=52a6037bd4b632bffffb04394fb4efd0cdab6b1e
distfiles="https://github.com/babashka/babashka/archive/refs/tags/v${version}.tar.gz
 https://github.com/borkdude/sci/archive/${_sci_commit}.tar.gz
 https://github.com/babashka/babashka.curl/archive/${_babashka_curl_commit}.tar.gz
 https://github.com/babashka/babashka.nrepl/archive/${_babashka_nrepl_commit}.tar.gz
 https://github.com/babashka/depstar/archive/${_depstar_commit}.tar.gz
 https://github.com/babashka/process/archive/${_process_commit}.tar.gz
 https://github.com/babashka/pods/archive/${_pods_commit}.tar.gz
 https://github.com/borkdude/deps.clj/archive/${_deps_clj_commit}.tar.gz
 https://github.com/babashka/fs/archive/${_fs_commit}.tar.gz
 https://github.com/babashka/babashka.core/archive/${_babashka_core_commit}.tar.gz"
checksum="399d7fe5ce1799532672edaa23bbcf50690a5fb76d9bb4424ef08849304e99ad
 66868f0bf4a702cbd598dbf20298a037a529e87e4334a4547f019dba918120e1
 6e60865ae2d4522c3de55b3b1daed51b42bb9bb6095b1d2fbd3620facece3257
 e447b9953c0f58a4d9bd43f728ac1bfd044b58b9686507f47a7f3420eae657f5
 9f5882a32d45e9b2ded563ccd95c1d5a958cdbb480da516f16ee4f6e3c561d33
 090878bb81cad6d9ae5a770895cb4ea621c09fef321f6c50a9b0b3885418f63d
 ba983a36983a65368fea896e6a00910f243a2063883150e84d7f39e3c3347df2
 645cb13a189c1d4da47f5237a5ed2e0c737253f023c0d46052a079fa696f3d9d
 7eca2f04c3dead04e6125a13de02919dbe88296f49b17aea53482467d1afe3d8
 bad285812bcc7de7e0dd905c5df99045d7f92d6e2e191fc2768c06adbaaeb709"

nocross="https://build.voidlinux.org/builders/aarch64_builder/builds/33769/steps/shell_3/logs/stdio"

post_extract() {
	mv babashka-$version/* babashka-$version/.??* .
	rmdir babashka-$version
	for dir in sci babashka.core babashka.curl babashka.nrepl \
		depstar process pods deps.clj fs
	do
		rmdir $dir
		mv "$dir"-* $dir
	done

	# Mandrel doesn't have GraalVM-SDK in the default classpath,
	# but some Babashka features require it.
	vsed -i -e '/:resource-paths/s@]@ "/usr/lib/jvm/mandrel21/lib/jvmci/nativeimage.jar"]@' project.clj
}

do_build() {
	export GRAALVM_HOME=/usr/lib/jvm/mandrel21
	export PATH=${GRAALVM_HOME}/bin:$PATH
	if [ "$XBPS_TARGET_LIBC" = musl ]; then
		export BABASHKA_MUSL=true
		export BABASHKA_STATIC=true  # mandrel workaround
	fi

	lein deps
	script/uberjar
	script/compile
}

do_check() {
	export GRAALVM_HOME=/usr/lib/jvm/mandrel21
	export BABASHKA_TEST_ENV=native
	script/test
	script/run_lib_tests
}

do_install() {
	vbin bb
	vlicense LICENSE
}
