# Template file for 'babashka'
pkgname=babashka
version=1.3.179
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=e80d94a9cbf13127628ceddf531e1eed4e9f15de
_babashka_curl_commit=e936acd40544eb637b6041c7e89454b21eb7ee34
_babashka_nrepl_commit=605788cd42dc35dc03a0276c9e9e5cc4e78e9a0b
_depstar_commit=c419b8c82041855d55593c5b561fc7cea8234712
_process_commit=dadcff417675c84dcd32448e22e6270d1555af5d
_pods_commit=64ecb94de888a34aeb023eb7f50bfa1a34943f24
_deps_clj_commit=2f93fe8ba712c855feb6ecf26d2ed70646b34356
_fs_commit=ceb8f7f48d4a1438a434ffc16238d5f1883bb4ac
_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="7c6b2dada8ce8107107dc776720ac7323fed3d3bec83dba7879432b9b61e6c18
 f9be60cfaef7f85696fa0a67108ecfdd21fdc977960b38b281e0cc93d9dd9da1
 6e60865ae2d4522c3de55b3b1daed51b42bb9bb6095b1d2fbd3620facece3257
 e76d1ce7a6905c6f588f1c55bec6797896459bca9c13a538d6fab9aa13603642
 9d214a10a4f5e4f15b9c80354dae85689a40e941ec3417203354c0dc3ce9457b
 003d3d005d40f620df519b26808b3753500bc94eba333be904603a2c2e05db57
 b9ca2bd69aa510db91526e73523f3c2aeb14033fd8055346d51d7c5143262972
 f67dc9f220385b0048640e46a9952749cf5a55e457ecc9f6f5601d4ab23a3b85
 8693d3d4cad5a6a198dbbcec2edc93d977711b1428235ff92e3c031495af0366
 bad285812bcc7de7e0dd905c5df99045d7f92d6e2e191fc2768c06adbaaeb709"

# https://github.com/openjdk/jdk17u-dev/pull/783
make_check=no # TODO: reenable after openjdk17>=17.0.6

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/mandrel17/lib/jvmci/graal-sdk.jar"]@' project.clj
}

do_build() {
	export GRAALVM_HOME=/usr/lib/jvm/mandrel17
	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/mandrel17
	export BABASHKA_TEST_ENV=native
	script/test
	script/run_lib_tests
}

do_install() {
	vbin bb
	vlicense LICENSE
}
