# Template file for 'babashka'
pkgname=babashka
version=1.12.196
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"
_babashka_sha=e186726fd9a2b165d98bf76215d047b3a1a478f5
_sci_commit=6892bc6aed8abf3a1ca532a71cdf352b7d8b6546
_babashka_curl_commit=e936acd40544eb637b6041c7e89454b21eb7ee34
_babashka_nrepl_commit=edd3d613bfb9bf3adabfd0bda5c3f5c6ee85ec20
_depstar_commit=2bf9d3c9f15298d7dd9de033674a42f830e23d6f
_process_commit=be97f9e84daa352e5adb84534ea5c8d2e666fe01
_pods_commit=717cef7af5cb1c1b091bd10e012b2e71b7b8b9bc
_deps_clj_commit=1824d1275c8ceabe1287cd085977d8d7c3cef38e
_fs_commit=ab826ff7e073dbd55842a66e04ed93ce0eee1e9b
_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="53c7554275f9c2757785fe90d400eb44e61bb0cace5b4b53eec3db8164a9f313
 815e68a4c4f8888c1e98f5bce58518a8e541be449e4abcb989399e5b7012f1b7
 6e60865ae2d4522c3de55b3b1daed51b42bb9bb6095b1d2fbd3620facece3257
 e447b9953c0f58a4d9bd43f728ac1bfd044b58b9686507f47a7f3420eae657f5
 9f5882a32d45e9b2ded563ccd95c1d5a958cdbb480da516f16ee4f6e3c561d33
 e3261c5f83b845aaddaead52335b6813e159dc4dd617ce8f30d1dc1658bdd9e5
 ba983a36983a65368fea896e6a00910f243a2063883150e84d7f39e3c3347df2
 5cb1e9a8dc3a03151045f2a0fde2fddf7d494d2824885f880c92d9e8a2d3eb46
 8bf771a6dec69fc2b9a73bd169a410a7e9859a0917b2948bd0cd51f55b0bd944
 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
	export BABASHKA_SHA=${_babashka_sha}
	if [ "$XBPS_TARGET_LIBC" = musl ]; then
		export BABASHKA_MUSL=true
		export BABASHKA_STATIC=true  # mandrel workaround
	fi

	lein deps
	script/uberjar
	script/compile --initialize-at-build-time=org.jsoup
}

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
}
