aboutsummaryrefslogtreecommitdiff
blob: 46f804b546c8c174bbd660d7c3588a7cbc072d07 (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
#!/bin/bash

user_vm="${HOME}/.gentoo/java-config-2/current-user-vm"
system_vm="/etc/java-config-2/current-system-vm"
# Try GENTOO_VM
if [[ -n ${GENTOO_VM} ]]; then
	vmpath="/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
tool=$(basename $0)
bin=${vmpath}/bin/${tool}
jrebin=${vmpath}/jre/bin/${tool}

vm_handle=$(basename ${vmpath})
if [[ -x ${bin} ]]; then 
	exec ${bin} "${@}"
elif [[ -x ${jrebin} ]]; then
	exec ${jrebin} "${@}"
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" ]]; 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 (( ${EUID} != 0 )) && [[ "${DISPLAY}" ]] && type -p 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