# Copyright 2023 Gabriel Sanches # Distributed under the terms of the Zero-Clause BSD License EAPI=8 inherit java-pkg-2 MY_PV=${PV/_p/-} MY_PN=${PN%%-bin} MY_P="${MY_PN}-${PV}" DESCRIPTION="Java language server" SRC_URI="https://download.eclipse.org/jdtls/snapshots/jdt-language-server-${MY_PV}.tar.gz -> ${MY_P}.tar.gz" HOMEPAGE="https://github.com/eclipse/eclipse.jdt.ls" LICENSE="EPL" SLOT="0" KEYWORDS="~amd64" DEPEND=">=virtual/jre-1.8:*" RDEPEND="${DEPEND}" S="${WORKDIR}" JDTLS_LIBEXEC="/usr/libexec/${MY_PN}" JDTLS_SHARE="/usr/share/${MY_PN}" JDTLS_WRAPPER="${FILESDIR}/wrapper" src_install() { dodir "${JDTLS_LIBEXEC}/bin" dodir "${JDTLS_SHARE}" cp -Rp plugins features "${ED}/${JDTLS_LIBEXEC}" || die "failed to copy" cp -Rp bin/${MY_PN} "${ED}/${JDTLS_LIBEXEC}/bin" || die "failed to copy" cp -Rp config_linux "${ED}/${JDTLS_SHARE}" || die "failed to copy" sed ${JDTLS_WRAPPER} -e "s;@PKGNAME@;${MY_PN};g" > wrapper dodir /usr/bin newbin wrapper ${MY_PN} } pkg_postinst() { elog "If the JDT Language Server fails to start (e.g. ClassNotFoundException)," elog "you may be running into stale Eclipse OSGi cache issues." elog elog "To fix this, remove the following directories:" elog " rm -rf \"\${XDG_DATA_HOME}/jdtls\" or rm -rf \"~/.local/share/jdtls\"" elog " rm -rf \"\${XDG_STATE_HOME}/jdtls\" or rm -rf \"~/.local/state/jdtls\"" elog elog "They will be recreated cleanly on the next launch." }