aboutsummaryrefslogtreecommitdiff
blob: 6bccac0bf086d3ddf587dd4040eff2c17cc72805 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!@GENTOO_PORTAGE_EPREFIX@/bin/sh

user_vm="${HOME}/.gentoo@GENTOO_PORTAGE_EPREFIX@/java-config-2/current-user-vm"
system_vm="@GENTOO_PORTAGE_EPREFIX@/etc/java-config-2/current-system-vm"

# Try GENTOO_VM
if [ -n "${GENTOO_VM}" ]; then
	vmpath="@GENTOO_PORTAGE_EPREFIX@/usr/lib/jvm/${GENTOO_VM}"
# Then user VM
elif [ -h "${user_vm}" ]; then
	vmpath=$(readlink "${user_vm}")
# And fall back to the system VM
else
	vmpath=$(readlink "${system_vm}")
fi

vm_handle=${vmpath##*/}
tool=${0##*/}

toolpath=$(
	export PATH=
	. "@GENTOO_PORTAGE_EPREFIX@/usr/share/java-config-2/vm/${vm_handle}" 2> /dev/null
	: ${PATH:=${vmpath}/bin:${vmpath}/jre/bin}
	"@GENTOO_PORTAGE_EPREFIX@/usr/bin/which" "${tool}" 2> /dev/null
)

if [ -x "${toolpath}" ]; then
	exec "${toolpath}" "${@}"
else
	if [ ! -d "${vmpath}" ]; then
		echo "* Home for VM '${vm_handle}' does not exist: ${vmpath}" >&2
		if [ -n "${GENTOO_VM}" ]; then
			echo "* Invalid value for GENTOO_VM: ${GENTOO_VM}"
		elif [ -h "${user_vm}" ]; then
			echo "* Invalid User VM: ${vm_handle}" >&2
		else
			echo "* Invalid System VM: ${vm_handle}" >&2
		fi
	else
		if [ "${tool}" = "run-java-tool.bash" ]; then
			echo "* run-java-tool was invoked directly" >&2
			echo "* run-java-tool should only be used via symlinks to it" >&2
		else
			echo "* ${tool} is not available for ${vm_handle} on $(uname -m)" >&2
			echo "* IMPORTANT: some Java tools are not available on some VMs on some architectures" >&2
			if [ "$(id -u)" != 0 ] && [ -n "${DISPLAY}" ] && type notify-send > /dev/null; then
				notify-send -i java-icon48 "Gentoo Java Launcher" "<b>${tool}</b> is not available for ${vm_handle}
<a href=\"http://www.gentoo.org/doc/en/java.xml\">Gentoo Java User Guide</a>"
			fi
		fi
	fi
	exit 1
fi