aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Sennhauser <sera@gentoo.org>2013-01-19 12:41:14 +0000
committerRalph Sennhauser <sera@gentoo.org>2013-01-19 12:41:14 +0000
commitf05897e1c955e46302b5f26074984d6b99579484 (patch)
tree76eef0af7b8b12de05321638dfaf0a349baaa885
parentImport run-java-tool and install location to pkglibexecdir instead of bindir (diff)
downloadeselect-java-f05897e1c955e46302b5f26074984d6b99579484.tar.gz
eselect-java-f05897e1c955e46302b5f26074984d6b99579484.tar.bz2
eselect-java-f05897e1c955e46302b5f26074984d6b99579484.zip
Add support for icedtea-web with selectable jvm
svn path=/projects/eselect-java/trunk/; revision=9153
-rw-r--r--src/modules/java-nsplugin.eselect.in41
1 files changed, 37 insertions, 4 deletions
diff --git a/src/modules/java-nsplugin.eselect.in b/src/modules/java-nsplugin.eselect.in
index a2bbf2e..04cf413 100644
--- a/src/modules/java-nsplugin.eselect.in
+++ b/src/modules/java-nsplugin.eselect.in
@@ -12,6 +12,7 @@ PLUGINS_HOME="${EROOT}/usr/share/java-config-2/nsplugin"
SYSTEM_PLUGIN="${EROOT}/usr/lib/nsbrowser/plugins/javaplugin.so"
SYSTEM_PLUGIN_32="${EROOT}/usr/lib32/nsbrowser/plugins/javaplugin.so"
SYSTEM_PLUGIN_64="${EROOT}/usr/lib64/nsbrowser/plugins/javaplugin.so"
+ICEDTEA_WEB_VM="${EROOT}/etc/java-config-2/current-icedtea-web-vm"
is_multilib() {
local libdirs=$(list_libdirs)
@@ -22,6 +23,13 @@ is_multilib() {
fi
}
+get_icedtea_web_targets() {
+ local vm
+ for vm in $(echo /usr/lib/jvm/icedtea-*); do
+ echo "icedtea-web-$(basename ${vm})"
+ done
+}
+
get_targets() {
for plugin in $(ls ${PLUGINS_HOME}/*-javaplugin.so 2>/dev/null);
do
@@ -31,10 +39,18 @@ get_targets() {
[[ ${vm} = emul-linux-* ]] && echo ${vm}
;;
64)
- [[ ${vm} != emul-linux-* ]] && echo ${vm}
+ if [[ ${vm} == icedtea-web ]]; then
+ get_icedtea_web_targets
+ elif [[ ${vm} != emul-linux-* ]]; then
+ echo ${vm}
+ fi
;;
none)
- echo ${vm}
+ if [[ ${vm} == icedtea-web ]]; then
+ get_icedtea_web_targets
+ else
+ echo ${vm}
+ fi
;;
esac
done
@@ -55,7 +71,14 @@ get_system_plugin_vm() {
else
plugin=$(readlink ${SYSTEM_PLUGIN})
fi
- plugin_to_vm ${plugin}
+ plugin=$(basename ${plugin%-javaplugin.so})
+
+ if [[ ${plugin} == icedtea-web ]]; then
+ local icedtea=$(readlink "${ICEDTEA_WEB_VM}")
+ echo "${plugin}-$(basename ${icedtea})"
+ else
+ echo ${plugin}
+ fi
}
### show action ###
@@ -160,7 +183,12 @@ do_set() {
die -q "You didn't specify valid plugin number to set"
fi
- local plugin="${PLUGINS_HOME}/${vm}-javaplugin.so"
+ local plugin
+ if [[ ${vm} == icedtea-web-* ]]; then
+ plugin="${PLUGINS_HOME}/icedtea-web-javaplugin.so"
+ else
+ plugin="${PLUGINS_HOME}/${vm}-javaplugin.so"
+ fi
if [[ ! -f ${plugin} ]]; then
write_error_msg "Expected \"${plugin}\" to exist, but it doesn't."
@@ -180,4 +208,9 @@ do_set() {
else
die -q "Sorry, you don't have enough permission to set nsplugin"
fi
+
+ if [[ ${vm} == icedtea-web-* ]]; then
+ rm -f "${ICEDTEA_WEB_VM}"
+ ln -sf "${EROOT}"/usr/lib/jvm/${vm#icedtea-web-} "${ICEDTEA_WEB_VM}"
+ fi
}