diff options
author | Maxim Sobolev <sobomax@FreeBSD.org> | 2000-06-12 09:42:51 +0000 |
---|---|---|
committer | Maxim Sobolev <sobomax@FreeBSD.org> | 2000-06-12 09:42:51 +0000 |
commit | a69acf6529e12e4c6965d49ca4fedc20d138339f (patch) | |
tree | f408243a2ae55cc11b0875372bfda8fcfbc5c9db /java/javavmwrapper/src | |
parent | Add WWW to DESCR. (diff) |
Initial import of javavmwrapper - a simple shell script which would allow
Java-based ports to use any of the Java Virtual Machines installed on the
system.
Notes
Notes:
svn path=/head/; revision=29536
Diffstat (limited to 'java/javavmwrapper/src')
-rw-r--r-- | java/javavmwrapper/src/javavmwrapper.sh | 120 |
1 files changed, 120 insertions, 0 deletions
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 |