aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/javavmwrapper/Makefile35
-rw-r--r--java/javavmwrapper/pkg-comment1
-rw-r--r--java/javavmwrapper/pkg-descr2
-rw-r--r--java/javavmwrapper/pkg-plist3
-rw-r--r--java/javavmwrapper/src/javavmwrapper.sh120
5 files changed, 161 insertions, 0 deletions
diff --git a/java/javavmwrapper/Makefile b/java/javavmwrapper/Makefile
new file mode 100644
index 000000000000..025458e4ddc5
--- /dev/null
+++ b/java/javavmwrapper/Makefile
@@ -0,0 +1,35 @@
+# New ports collection makefile for: javavmwrapper
+# Date created: 10 June 2000
+# Whom: Maxim Sobolev <sobomax@FreeBSD.org>
+#
+# $FreeBSD$
+#
+# This port is self contained in the src directory.
+#
+
+PORTNAME= javavmwrapper
+PORTVERSION= 1.0
+CATEGORIES= java
+MASTER_SITES= # none
+DISTFILES= # none
+
+MAINTAINER= sobomax@FreeBSD.org
+
+NO_BUILD= yes
+NO_WRKSUBDIR= yes
+
+SRC= ${.CURDIR}/src
+
+do-fetch:
+ @${DO_NADA}
+
+do-configure:
+ ${SED} 's|%%PREFIX%%|${PREFIX}|' \
+ < ${SRC}/javavmwrapper.sh > ${WRKDIR}/javavmwrapper.sh
+
+do-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/javavmwrapper.sh ${PREFIX}/bin/javavm
+ ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/registervm
+ ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/unregistervm
+
+.include <bsd.port.mk>
diff --git a/java/javavmwrapper/pkg-comment b/java/javavmwrapper/pkg-comment
new file mode 100644
index 000000000000..6713fedf6164
--- /dev/null
+++ b/java/javavmwrapper/pkg-comment
@@ -0,0 +1 @@
+Wrapper script for various Java Virtual Machines
diff --git a/java/javavmwrapper/pkg-descr b/java/javavmwrapper/pkg-descr
new file mode 100644
index 000000000000..934875c757c7
--- /dev/null
+++ b/java/javavmwrapper/pkg-descr
@@ -0,0 +1,2 @@
+Wrapper script to allow several different Java Virtual Machines being installef
+on the same system.
diff --git a/java/javavmwrapper/pkg-plist b/java/javavmwrapper/pkg-plist
new file mode 100644
index 000000000000..00e0e070e808
--- /dev/null
+++ b/java/javavmwrapper/pkg-plist
@@ -0,0 +1,3 @@
+bin/javavm
+bin/registervm
+bin/unregistervm
diff --git a/java/javavmwrapper/src/javavmwrapper.sh b/java/javavmwrapper/src/javavmwrapper.sh
new file mode 100644
index 000000000000..5507efe3cbc1
--- /dev/null
+++ b/java/javavmwrapper/src/javavmwrapper.sh
@@ -0,0 +1,120 @@
+#!/bin/sh
+#
+# javawrapper.sh
+#
+# Allows to install several Java Virtual Machines
+# on the same system and use config file/or environment
+# variable to select wichever to use
+#
+# ----------------------------------------------------------------------------
+# "THE BEER-WARE LICENSE" (Revision 42, (c) Poul-Henning Kamp):
+# Maxim Sobolev <sobomax@FreeBSD.org> wrote this file. As long as you retain
+# this notice you can do whatever you want with this stuff. If we meet some
+# day, and you think this stuff is worth it, you can buy me a beer in return.
+#
+# Maxim Sobolev
+# ----------------------------------------------------------------------------
+#
+# $FreeBSD$
+#
+# MAINTAINER= sobomax@FreeBSD.org
+
+ARGS="${*}"
+PREFIX="%%PREFIX%%"
+CONF="${PREFIX}/etc/javavms"
+IAM=`basename "${0}"`
+
+tryrunVM () {
+ if [ -x "${1}" ]; then
+ exec "${1}" ${2}
+ fi
+
+ /bin/echo "${IAM}: warning: couldn't start specified JavaVM - \"${1}\"" >&2
+}
+
+registerVM () {
+ if [ x"${1}" = x"" ]; then
+ /bin/echo "Usage: ${IAM} path"
+ exit
+ fi
+
+ if [ ! -e "${CONF}" ]; then
+ /usr/bin/touch "${CONF}"
+ fi
+
+ if [ ! -x "${1}" ]; then
+ /bin/echo "${IAM}: warning: the specified JavaVM \"${1}\" either not exists of not executable" >&2
+ fi
+
+ /bin/ed "${CONF}" >/dev/null <<EOF
+0a
+${1}
+.
+w
+q
+EOF
+ exit 0
+}
+
+unregisterVM () {
+ if [ x"${1}" = x"" ]; then
+ /bin/echo "Usage: ${IAM} path"
+ exit
+ fi
+
+ if [ ! -e "${CONF}" ]; then
+ /bin/echo "${IAM}: error: can't find ${CONF} config file!" >&2
+ exit 1
+ fi
+
+ if [ x"`grep ${1} ${CONF}`" = x"" ]; then
+ /bin/echo "${IAM}: error: \"${1}\" JavaVM is not currently registered"
+ exit 1
+ fi
+
+ /bin/ed "${CONF}" >/dev/null <<EOF
+g|${1}|d
+w
+q
+EOF
+
+ # Remove config file if its size reached 0
+ if [ ! -s "${CONF}" ]; then
+ /bin/rm "${CONF}"
+ fi
+
+ exit 0
+}
+
+case "${IAM}" in
+ registervm )
+ registerVM "${1}"
+ ;;
+ unregistervm )
+ unregisterVM "${1}"
+ ;;
+esac
+
+# Main ()
+
+# First check if JAVAVM environment variable is set
+if [ x"${JAVAVM}" != x"" ]; then
+ tryrunVM "${JAVAVM}" "${ARGS}"
+fi
+
+# Then try to make sure that ${CONF} exists
+if [ ! -e "${CONF}" ]; then
+ echo "${IAM}: error: can't find ${CONF} config file" >&2
+ exit 1
+fi
+
+# Allow coment in the ${CONF}
+VMS=`/usr/bin/sed 's|#.*||' < "${CONF}" | uniq`
+
+# Finally try to run one of the ${VMS}
+for JAVAVM in ${VMS}; do
+ tryrunVM "${JAVAVM}" "${ARGS}";
+done
+
+echo "${IAM}: error: no suitable JavaVMs found" >&2
+exit 1 \ No newline at end of file