# HG changeset patch # User Jie Kang # Date 1482265675 18000 # Node ID f6c48c61e6de74f9bb0bf5a1251a98f2a2c376f3 # Parent 46f5eeeb2578aaebe30b20ec2b571bc82ee7a449 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 diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/pom.xml --- 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 @@ - + diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat --- 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] [-Tbg PIDFILE] [THERMOSTAT_ARGS]" >&2 exit 1 diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat-agent-proxy --- 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 " >&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" diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat-agent-sysd --- 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 $? } diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat-common --- /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 +# . +# +# 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" + diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat-debug --- 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 $? diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat-devsetup --- 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 diff -r 46f5eeeb2578 -r f6c48c61e6de distribution/scripts/thermostat-functions --- 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 -# . -# -# 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" -}