src/jdk.jpackager/unix/scripts/jpackager
branchJDK-8200758-branch
changeset 57017 1b08af362a30
parent 56982 e094d5483bd6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.jpackager/unix/scripts/jpackager	Mon Nov 05 17:32:00 2018 -0500
@@ -0,0 +1,103 @@
+#!/bin/bash
+#
+# Java Packager tool execution script for Linux and MacOS.
+#
+
+# Default values.
+DEBUG=""
+MEMORY="-Xmx512M"
+JAVA_ARGS=""
+DEBUG_ARG="-J-Xdebug:";
+
+# Argument parsing.
+args=
+narg=1
+for i in "$@"; do
+    if [[ "$i" == "-J-Xmx"* ]]; then
+        ARGUMENT=${i:2}
+        MEMORY=${ARGUMENT}
+    elif [[ "$i" == ${DEBUG_ARG}* ]]; then
+        ADDRESS=${i:${#DEBUG_ARG}}
+        DEBUG="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=${ADDRESS}"
+    elif [[ "$i" == "-J-"* ]]; then
+        ARGUMENT=${i:2}
+        JAVA_ARGS="${JAVA_ARGS} ${ARGUMENT}"
+    else
+        args="$args \"$""{"$narg"}\""
+    fi
+    narg=`expr $narg + 1`
+done
+
+# resolve symlinks
+PRG=$0
+while [ -h "$PRG" ]; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
+    if expr "$link" : '^/' 2> /dev/null >/dev/null; then
+	PRG="$link"
+    else
+	PRG="`dirname "$PRG"`/$link"
+    fi
+done
+
+# detect Darwin and Cygwin environments
+darwin=false;
+cygwin=false;
+case "`uname`" in
+  Darwin*) darwin=true;
+           if [ -z "$JAVA_HOME" ] ; then
+               BIN_DIR=`dirname $PRG`
+               JAVA_HOME=`cd $BIN_DIR > /dev/null; pwd`/..
+           fi
+           ;;
+  CYGWIN*) cygwin=true;;
+esac
+
+JAVA_JPACKAGER_PATH=$(cd $(dirname $0) ; pwd -P)
+JAVA_CMD="${JAVA_JPACKAGER_PATH}/java"
+
+if [[ ! -f ${JAVA_CMD} ]]; then
+  if [ -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/javac" ] ; then
+      JAVA_CMD="$JAVA_HOME/bin/java"
+      export JAVA_HOME
+  else
+    JAVAC_CMD=`which javac 2> /dev/null `
+    while [ -h "$JAVAC_CMD" ]; do
+      ls=`ls -ld "$JAVAC_CMD"`
+      link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
+      if expr "$link" : '^/' 2> /dev/null >/dev/null; then
+        JAVAC_CMD="$link"
+      else
+        JAVAC_CMD="`dirname "$JAVAC_CMD"`/$link"
+      fi
+    done
+
+    BIN_DIR=`dirname "$JAVAC_CMD"`
+    JAVA_HOME=`dirname "$BIN_DIR"`
+    if [ "m$JAVA_HOME" != "m." ]; then
+      JAVA_CMD="$JAVA_HOME/bin/java"
+      export JAVA_HOME
+    else
+      unset JAVA_HOME
+      JAVA_CMD=`which java 2> /dev/null `
+      if [ -z "$JAVA_CMD" ]; then
+        JAVA_CMD="java"
+      fi
+    fi
+  fi
+fi
+
+if [ ! -x "$JAVA_CMD" ] ; then
+  echo 'Error: JAVA_HOME is not defined, cannot find "java" command.'
+  exit 1
+fi
+
+if $cygwin ; then
+    JAVA_CMD=`cygpath --unix "$JAVA_CMD"`
+fi
+
+# This is similar to "$@" except we had to strip out some arguments
+# that we don't want to be passed to the Java Packager.
+eval exec "$JAVA_CMD" ${DEBUG} ${MEMORY} ${JAVA_ARGS} \
+    -m jdk.jpackager/jdk.jpackager.main.Main $args
+