FreeBSD Bugzilla – Attachment 229074 Details for
Bug 259468
java/javavmwrapper: Add a java_home command
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Initial implementation attempt
patch-java-javavmwrapper (text/plain), 5.57 KB, created by
Thomas Hurst
on 2021-10-27 15:40:43 UTC
(
hide
)
Description:
Initial implementation attempt
Filename:
MIME Type:
Creator:
Thomas Hurst
Created:
2021-10-27 15:40:43 UTC
Size:
5.57 KB
patch
obsolete
>diff --git java/javavmwrapper/Makefile java/javavmwrapper/Makefile >index abe40ee6b43a..fcfbf1489501 100644 >--- java/javavmwrapper/Makefile >+++ java/javavmwrapper/Makefile >@@ -2,6 +2,7 @@ > > PORTNAME= javavmwrapper > PORTVERSION= 2.7.7 >+PORTREVISION= 1 > CATEGORIES= java > MASTER_SITES= # none > DISTFILES= # none >@@ -46,6 +47,7 @@ do-install: > ${INSTALL_SCRIPT} ${WRKSRC}/classpath.sh ${STAGEDIR}${PREFIX}/bin/classpath > ${INSTALL_SCRIPT} ${WRKSRC}/javavmwrapper.sh ${STAGEDIR}${PREFIX}/bin/javavm > ${LN} -sf javavm ${STAGEDIR}${PREFIX}/bin/checkvms >+ ${LN} -sf javavm ${STAGEDIR}${PREFIX}/bin/java_home > ${LN} -sf javavm ${STAGEDIR}${PREFIX}/bin/manvm > ${LN} -sf javavm ${STAGEDIR}${PREFIX}/bin/registervm > ${LN} -sf javavm ${STAGEDIR}${PREFIX}/bin/unregistervm >diff --git java/javavmwrapper/pkg-plist java/javavmwrapper/pkg-plist >index e4a7a2caaef1..2a9ded5d0d72 100644 >--- java/javavmwrapper/pkg-plist >+++ java/javavmwrapper/pkg-plist >@@ -1,5 +1,6 @@ > bin/checkvms > bin/classpath >+bin/java_home > bin/javavm > bin/manvm > bin/registervm >diff --git java/javavmwrapper/src/javavmwrapper.sh java/javavmwrapper/src/javavmwrapper.sh >old mode 100644 >new mode 100755 >index 428fed83b582..1f560d9e8653 >--- java/javavmwrapper/src/javavmwrapper.sh >+++ java/javavmwrapper/src/javavmwrapper.sh >@@ -424,11 +424,7 @@ manualpageVM () { > # Look for an appropriate JAVA_HOME > _JAVAVM_SAVE_PROG=${_JAVAVM_PROG} > _JAVAVM_PROG="../man/man1/${1}.1" >- setJavaHome >- if [ $? != 0 ]; then >- echo "${_JAVAVM_SAVE_PROG}: error: no suitable JavaVMs found" 1>&2 >- exit 1 >- fi >+ ensureJavaHome > > # Run man(1) > MANPATH="${JAVA_HOME}/man:${MANPATH}" >@@ -442,6 +438,86 @@ manualpageVM () { > fi > } > >+# >+# Handle the java_home command >+# >+# This works similarly to the command of the same name on macOS >+# >+javaHome() { >+ _JAVAVM_SAVE_PROG=${_JAVAVM_PROG} >+ _JAVAVM_PROG=java >+ # options: >+ # -v VERSION: Override JAVA_VERSION >+ # -o OS: override JAVA_OS >+ # -e COMMAND: Set JAVA_HOME according to settings and exec the given command >+ # -h: Print usage and exit >+ while getopts eho:v:-: OPT; do >+ case "${OPT}" in >+ v ) >+ if [ -z "${OPTARG}" ]; then >+ echo "${_JAVAVM_SAVE_PROG}: error: No version specified for ${OPT}" 1>&2 >+ exit 1 >+ fi >+ export JAVA_VERSION="${OPTARG}" >+ ;; >+ o ) >+ if [ -z "${OPTARG}" ]; then >+ echo "${_JAVAVM_SAVE_PROG}: error: No platform specified for ${OPT}" 1>&2 >+ exit 1 >+ fi >+ export JAVA_OS="${OPTARG}" >+ ;; >+ e ) >+ if [ -n "${_JAVAVM_SAVE_PATH}" ]; then >+ export PATH=${_JAVAVM_SAVE_PATH} >+ fi >+ ensureJavaHome >+ export JAVA_HOME >+ shift $((OPTIND-1)) >+ exec "${@}" >+ ;; >+ h ) >+ echo "Usage: ${_JAVAVM_SAVE_PROG} [-v VERSION] [-o OS] [-e COMMAND]" >+ exit 0 >+ ;; >+ ? ) >+ echo "Usage: ${_JAVAVM_SAVE_PROG} [-v VERSION] [-o OS] [-e COMMAND]" 2>&1 >+ exit 1 # bad short option reported by getopts >+ ;; >+ esac >+ done >+ shift $((OPTIND-1)) >+ >+ ensureJavaHome >+ >+ echo "${JAVA_HOME}" >+ exit 0 >+} >+ >+# >+# Attempt to execute the appropriate JVM >+# >+runJava() { >+ # Initialise options >+ if [ -r "${_JAVAVM_OPTS_CONF}" ]; then >+ . "${_JAVAVM_OPTS_CONF}" >+ fi >+ _JAVAVM_OPTS= >+ >+ # Determine JAVA_HOME >+ ensureJavaHome >+ >+ # Set up the options and run the command >+ if [ -x "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ]; then >+ setJavaOptions "${_JAVAVM_PROG}" "`basename ${JAVA_HOME}`" >+ export JAVA_HOME >+ tryJavaCommand "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ${_JAVAVM_OPTS} "${@}" >+ fi >+ >+ echo "${_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 >+ exit 1 >+} >+ > # > # Set up an appropriate JAVA_HOME > # >@@ -631,6 +707,17 @@ setJavaHome() { > return 1 > } > >+# >+# Set JAVA_HOME or exit with an error message >+# >+ensureJavaHome() { >+ setJavaHome >+ if [ $? != 0 ]; then >+ echo "${_JAVAVM_SAVE_PROG:-_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 >+ exit 1 >+ fi >+} >+ > # Check for an alias and call the appropriate function. > case "${_JAVAVM_PROG}" in > registervm ) >@@ -645,35 +732,14 @@ case "${_JAVAVM_PROG}" in > manvm ) > manualpageVM "${1}" > ;; >+ java_home ) >+ javaHome "${@}" >+ ;; >+ javavm ) >+ # Backwards compatibility >+ echo "${_JAVAVM_PROG}: warning: The use of 'javavm' as a synonym for 'java' is deprecated" 1>&2 >+ _JAVAVM_PROG=java >+ ;; > esac > >-# Main () >- >-# Backwards compatibility >-if [ "${_JAVAVM_PROG}" = "javavm" ]; then >- echo "${_JAVAVM_PROG}: warning: The use of 'javavm' as a synonym for 'java' is deprecated" 1>&2 >- _JAVAVM_PROG=java >-fi >- >-# Initialise options >-if [ -r "${_JAVAVM_OPTS_CONF}" ]; then >- . "${_JAVAVM_OPTS_CONF}" >-fi >-_JAVAVM_OPTS= >- >-# Determine JAVA_HOME >-setJavaHome >-if [ $? != 0 ]; then >- echo "${_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 >- exit 1 >-fi >- >-# Set up the options and run the command >-if [ -x "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ]; then >- setJavaOptions "${_JAVAVM_PROG}" "`basename ${JAVA_HOME}`" >- export JAVA_HOME >- tryJavaCommand "${_JAVAVM_PROG_PATH}/${_JAVAVM_PROG}" ${_JAVAVM_OPTS} "${@}" >-fi >- >-echo "${_JAVAVM_PROG}: error: no suitable JavaVMs found" 1>&2 >-exit 1 >+runJava "${@}"
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 259468
:
229074
|
229075
|
229096