changeset 2042:f6c48c61e6de

Reduce duplication in scripts Backport of: http://icedtea.classpath.org/hg/thermostat/rev/782e7676113f PR3238 Reviewed-by: jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2016-December/021885.html
author Jie Kang <jkang@redhat.com>
date Tue, 20 Dec 2016 15:27:55 -0500
parents 46f5eeeb2578
children 83ded2b9af31
files distribution/pom.xml distribution/scripts/thermostat distribution/scripts/thermostat-agent-proxy distribution/scripts/thermostat-agent-sysd distribution/scripts/thermostat-common distribution/scripts/thermostat-debug distribution/scripts/thermostat-devsetup distribution/scripts/thermostat-functions
diffstat 8 files changed, 83 insertions(+), 108 deletions(-) [+]
line wrap: on
line diff
--- a/distribution/pom.xml	Tue Dec 20 15:27:00 2016 -0500
+++ b/distribution/pom.xml	Tue Dec 20 15:27:55 2016 -0500
@@ -256,7 +256,7 @@
             <configuration>
               <target>
                 <chmod file="${project.build.directory}/image/bin/*" perm="755" />
-                <chmod file="${project.build.directory}/image/bin/thermostat-functions" perm="644" />
+                <chmod file="${project.build.directory}/image/bin/thermostat-common" perm="644" />
                 <chmod file="${project.build.directory}/tools/*" perm="755" />
                 <chmod file="${project.build.directory}/image/etc/thermostat-roles.properties" perm="600" />
                 <chmod file="${project.build.directory}/image/etc/thermostat-users.properties" perm="600" />
--- a/distribution/scripts/thermostat	Tue Dec 20 15:27:00 2016 -0500
+++ b/distribution/scripts/thermostat	Tue Dec 20 15:27:55 2016 -0500
@@ -36,17 +36,8 @@
 #
 #####################################################################
 
-# Source thermostat-functions from same directory as this script
-. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-functions
-
-if [ x"${THERMOSTAT_HOME}" = x ]; then
-  THERMOSTAT_HOME=$(_find_thermostat_home)
-  export THERMOSTAT_HOME
-fi
-if [ x"${USER_THERMOSTAT_HOME}" = x ]; then
-  USER_THERMOSTAT_HOME="@user.thermostat.home@"
-  export USER_THERMOSTAT_HOME
-fi
+# Source thermostat-common from same directory as this script
+. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-common
 
 # Source system thermostat profile
 . ${THERMOSTAT_HOME}/etc/thermostatrc
@@ -62,9 +53,6 @@
 # THERMOSTAT_EXT_JAVA_OPTS
 # THERMOSTAT_EXT_OPTS
 
-JAVA="@java.home@/bin/java"
-THERMOSTAT_LIBS="${THERMOSTAT_HOME}/libs"
-
 # This is the minimal boot classpath thermostat needs. Other dependencies
 # will get started by the OSGi framework once that's up.
 BOOT_CLASSPATH="${THERMOSTAT_LIBS}/org.apache.felix.framework-@felix.framework.version@.jar"
@@ -80,9 +68,6 @@
 
 JLINE_LOG_ARG="-Djline.log.jul=true"
 
-# Duplicated in ThermostatVmMainLabelDecorator
-THERMOSTAT_MAIN="com.redhat.thermostat.main.Thermostat"
-
 function usage() {
     echo "$0 [-J<java-opt>] [-Tbg PIDFILE] [THERMOSTAT_ARGS]" >&2
     exit 1
--- a/distribution/scripts/thermostat-agent-proxy	Tue Dec 20 15:27:00 2016 -0500
+++ b/distribution/scripts/thermostat-agent-proxy	Tue Dec 20 15:27:55 2016 -0500
@@ -35,27 +35,13 @@
 # to do so, delete this exception statement from your version.
 #
 #####################################################################
-#
-# Some necessary variables.
-JAVA_DIR="@java.dir@"
-JAVA="@java.home@/bin/java"
 
 if [ "$#" -lt 2 ]; then
   echo "usage: $0 <pidOfTargetJvm> <userNameOfJvmOwner>" >&2
 fi
 
 # Source thermostat-functions from same directory as this script
-. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-functions
-
-if [ x"$THERMOSTAT_INSTALL_DIR" = x ] ; then
-  THERMOSTAT_INSTALL_DIR=$(_find_thermostat_home)
-fi
-# Not always are installation directory and thermostat home one and
-# the same location.
-if [ x"$THERMOSTAT_HOME" = x ] ; then
-  THERMOSTAT_HOME=${THERMOSTAT_INSTALL_DIR}
-fi
-THERMOSTAT_LIBS="${THERMOSTAT_HOME}/libs"
+. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-common
 
 # Need tools from the JVM
 TOOLS_JAR="@java.home@/../lib/tools.jar"
--- a/distribution/scripts/thermostat-agent-sysd	Tue Dec 20 15:27:00 2016 -0500
+++ b/distribution/scripts/thermostat-agent-sysd	Tue Dec 20 15:27:55 2016 -0500
@@ -44,15 +44,9 @@
     exit 1
 fi
 
-# Source thermostat-functions from same directory as this script
-. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-functions
+# Source thermostat-common from same directory as this script
+. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-common
 
-if [ x"$THERMOSTAT_HOME" = x ] ; then
-    THERMOSTAT_HOME=$(_find_thermostat_home)
-fi
-
-export THERMOSTAT_HOME
-THERMOSTAT_BIN="$THERMOSTAT_HOME/bin/thermostat"
 AGENT_PID_FILE="$THERMOSTAT_HOME/run/thermostat-agent.pid"
 
 function start() {
@@ -61,7 +55,7 @@
         exit 1
     fi
     # This writes PID of java process to AGENT_PID_FILE
-    "$THERMOSTAT_BIN" -Tbg "$AGENT_PID_FILE" agent
+    "$THERMOSTAT" -Tbg "$AGENT_PID_FILE" agent
     exit $?
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/distribution/scripts/thermostat-common	Tue Dec 20 15:27:55 2016 -0500
@@ -0,0 +1,71 @@
+#!/bin/bash
+#
+# Copyright 2012-2015 Red Hat, Inc.
+#
+# This file is part of Thermostat.
+#
+# Thermostat is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2, or (at your
+# option) any later version.
+#
+# Thermostat is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Thermostat; see the file COPYING.  If not see
+# <http://www.gnu.org/licenses/>.
+#
+# Linking this code with other modules is making a combined work
+# based on this code.  Thus, the terms and conditions of the GNU
+# General Public License cover the whole combination.
+#
+# As a special exception, the copyright holders of this code give
+# you permission to link this code with independent modules to
+# produce an executable, regardless of the license terms of these
+# independent modules, and to copy and distribute the resulting
+# executable under terms of your choice, provided that you also
+# meet, for each linked independent module, the terms and conditions
+# of the license of that module.  An independent module is a module
+# which is not derived from or based on this code.  If you modify
+# this code, you may extend this exception to your version of the
+# library, but you are not obligated to do so.  If you do not wish
+# to do so, delete this exception statement from your version.
+#
+#####################################################################
+
+_find_thermostat_home() {
+  # Compute THERMOSTAT_HOME by finding the (symlink-resolved) location of the
+  # currently executing code's parent dir. See
+  # http://stackoverflow.com/a/246128/3561275 for implementation details.
+  SOURCE="${BASH_SOURCE[0]}"
+  while [ -h "$SOURCE" ]; do
+    DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
+    SOURCE="$(readlink "$SOURCE")"
+    [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
+  done
+  DIR="$(cd -P "$(dirname "$SOURCE")" && cd .. && pwd)"
+  echo "$DIR"
+}
+
+# Thermostat home
+if [[ "${THERMOSTAT_HOME}" = "" ]]; then
+  THERMOSTAT_HOME="$(_find_thermostat_home)"
+fi
+export THERMOSTAT_HOME
+
+# Thermostat user home
+if [[ "${USER_THERMOSTAT_HOME}" = "" ]]; then
+  USER_THERMOSTAT_HOME="${HOME}/.thermostat-1.6"
+fi
+export USER_THERMOSTAT_HOME
+
+THERMOSTAT="${THERMOSTAT_HOME}/bin/thermostat"
+THERMOSTAT_LIBS="${THERMOSTAT_HOME}/libs"
+
+THERMOSTAT_MAIN="com.redhat.thermostat.main.Thermostat"
+
+JAVA="@java.home@/bin/java"
+
--- a/distribution/scripts/thermostat-debug	Tue Dec 20 15:27:00 2016 -0500
+++ b/distribution/scripts/thermostat-debug	Tue Dec 20 15:27:55 2016 -0500
@@ -38,19 +38,14 @@
 #
 # Some necessary variables.
 
-# Source thermostat-functions from same directory as this script
-. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-functions
-
-if [ x"$THERMOSTAT_HOME" = x ] ; then
-  THERMOSTAT_HOME=$(_find_thermostat_home)
-fi
-export THERMOSTAT_HOME
+# Source thermostat-common from same directory as this script
+. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-common
 
 if [ x"$THERMOSTAT_DEBUG_ADDRESS" = x ] ; then
   THERMOSTAT_DEBUG_ADDRESS=1080
 fi
 export THERMOSTAT_DEBUG_ADDRESS
 
-$THERMOSTAT_HOME/bin/thermostat "$@" --print-osgi-info -J-Dsun.awt.disablegrab=true -J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,address=$THERMOSTAT_DEBUG_ADDRESS
+$THERMOSTAT "$@" --print-osgi-info -J-Dsun.awt.disablegrab=true -J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,address=$THERMOSTAT_DEBUG_ADDRESS
 exit $?
 
--- a/distribution/scripts/thermostat-devsetup	Tue Dec 20 15:27:00 2016 -0500
+++ b/distribution/scripts/thermostat-devsetup	Tue Dec 20 15:27:55 2016 -0500
@@ -44,16 +44,11 @@
 # file into the right place.
 
 # Source thermostat-functions from same directory as this script
-. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-functions
+. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/thermostat-common
 
-if [ "x$THERMOSTAT_HOME" == "x" ]; then
-  THERMOSTAT_HOME=$(_find_thermostat_home)
-fi
 THERMOSTAT_SETUP="$THERMOSTAT_HOME/bin/thermostat-setup"
 DEV_INPUT="$THERMOSTAT_HOME/etc/devsetup.input"
-if [ "x$USER_THERMOSTAT_HOME" == "x" ]; then
-  USER_THERMOSTAT_HOME="$HOME/.thermostat-1.6"
-fi
+
 
 # Call the setup script
 $THERMOSTAT_SETUP < $DEV_INPUT
--- a/distribution/scripts/thermostat-functions	Tue Dec 20 15:27:00 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2012-2015 Red Hat, Inc.
-#
-# This file is part of Thermostat.
-#
-# Thermostat is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published
-# by the Free Software Foundation; either version 2, or (at your
-# option) any later version.
-#
-# Thermostat is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Thermostat; see the file COPYING.  If not see
-# <http://www.gnu.org/licenses/>.
-#
-# Linking this code with other modules is making a combined work
-# based on this code.  Thus, the terms and conditions of the GNU
-# General Public License cover the whole combination.
-#
-# As a special exception, the copyright holders of this code give
-# you permission to link this code with independent modules to
-# produce an executable, regardless of the license terms of these
-# independent modules, and to copy and distribute the resulting
-# executable under terms of your choice, provided that you also
-# meet, for each linked independent module, the terms and conditions
-# of the license of that module.  An independent module is a module
-# which is not derived from or based on this code.  If you modify
-# this code, you may extend this exception to your version of the
-# library, but you are not obligated to do so.  If you do not wish
-# to do so, delete this exception statement from your version.
-#
-#####################################################################
-
-_find_thermostat_home() {
-  # Compute THERMOSTAT_HOME by finding the (symlink-resolved) location of the
-  # currently executing code's parent dir. See
-  # http://stackoverflow.com/a/246128/3561275 for implementation details.
-  SOURCE="${BASH_SOURCE[0]}"
-  while [ -h "$SOURCE" ]; do
-    DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
-    SOURCE="$(readlink "$SOURCE")"
-    [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
-  done
-  DIR="$(cd -P "$(dirname "$SOURCE")" && cd .. && pwd)"
-  echo "$DIR"
-}