changeset 1122:9c20c3b08192

Refactor thermostat-init-layout script. Reviewed-by: vanaltj Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-May/006871.html
author Severin Gehwolf <sgehwolf@redhat.com>
date Fri, 24 May 2013 16:12:14 +0200
parents edb423d5d5a0
children 3694f5bb12f5
files distribution/scripts/thermostat distribution/scripts/thermostat-init-layout distribution/scripts/thermostat-setup-user-home
diffstat 3 files changed, 131 insertions(+), 101 deletions(-) [+]
line wrap: on
line diff
--- a/distribution/scripts/thermostat	Mon May 27 14:12:48 2013 +0200
+++ b/distribution/scripts/thermostat	Fri May 24 16:12:14 2013 +0200
@@ -40,9 +40,12 @@
 JAVA_DIR="@java.dir@"
 JAVA="@java.home@/bin/java"
 
-if [ x"$THERMOSTAT_HOME" = x ] ; then
-  THERMOSTAT_HOME="@thermostat.home@"
+if [ x"$THERMOSTAT_INSTALL_DIR" = x ] ; then
+  THERMOSTAT_INSTALL_DIR="@thermostat.home@"
 fi
+# Not always are installation directory and thermostat home one and
+# the same location.
+THERMOSTAT_HOME=${THERMOSTAT_INSTALL_DIR}
 export THERMOSTAT_HOME
 THERMOSTAT_LIBS="${THERMOSTAT_HOME}/libs"
 
--- a/distribution/scripts/thermostat-init-layout	Mon May 27 14:12:48 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2012, 2013 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.
-#
-#####################################################################
-#
-# Some necessary variables.
-if [ "$THERMOSTAT_HOME" = "" ]; then
-    echo "THERMOSTAT_HOME not set!"
-
-else
-    THERMOSTAT_STORAGE="${THERMOSTAT_HOME}/storage/db"
-    THERMOSTAT_LOG="${THERMOSTAT_HOME}/storage/logs"
-    THERMOSTAT_PID="${THERMOSTAT_HOME}/storage/run"
-    THERMOSTAT_BIN="${THERMOSTAT_HOME}/bin"
-    THERMOSTAT_AGENT_LOG="${THERMOSTAT_HOME}/agent/logs"
-    THERMOSTAT_AGENT_RUN="${THERMOSTAT_HOME}/agent/run"
-    THEMROSTAT_CLIENT="${THERMOSTAT_HOME}/client"
-    THERMOSTAT_LIBS="${THERMOSTAT_HOME}/libs/native"
-    THERMOSTAT_OSGI_CACHE="${THERMOSTAT_HOME}/osgi-cache"
-
-    if [ ! -d "${THERMOSTAT_STORAGE}" ] ; then
-        echo "creating ${THERMOSTAT_STORAGE}"
-        mkdir -p ${THERMOSTAT_STORAGE}
-    fi
-    
-    if [ ! -d "${THERMOSTAT_LOG}" ] ; then
-        echo "creating ${THERMOSTAT_LOG}"
-        mkdir -p ${THERMOSTAT_LOG}
-    fi
-    
-    if [ ! -d "${THERMOSTAT_PID}" ] ; then
-        echo "creating ${THERMOSTAT_PID}"
-        mkdir -p ${THERMOSTAT_PID}
-    fi
-    
-    if [ ! -e "${THERMOSTAT_BIN}" ] ; then
-        echo "creating ${THERMOSTAT_BIN}"
-        mkdir -p ${THERMOSTAT_BIN}
-    fi
-    
-    if [ ! -d "${THERMOSTAT_AGENT_LOG}" ] ; then
-        echo "creating ${THERMOSTAT_AGENT_LOG}"
-        mkdir -p ${THERMOSTAT_AGENT_LOG}
-    fi
-    
-    if [ ! -d "${THERMOSTAT_AGENT_RUN}" ] ; then
-        echo "creating ${THERMOSTAT_AGENT_RUN}"
-        mkdir -p ${THERMOSTAT_AGENT_RUN}
-    fi
-
-    if [ ! -d "${THERMOSTAT_CLIENT}" ] ; then
-        echo "creating ${THERMOSTAT_CLIENT}"
-        mkdir -p "${THERMOSTAT_CLIENT}"
-    fi
-
-    if [ ! -d "${THERMOSTAT_LIBS}" ] ; then
-        echo "creating ${THERMOSTAT_LIBS}"
-        mkdir -p ${THERMOSTAT_LIBS}
-    fi
-
-    if [ ! -d "${THERMOSTAT_OSGI_CACHE}" ] ; then
-        echo "creating ${THERMOSTAT_OSGI_CACHE}"
-        mkdir -p ${THERMOSTAT_OSGI_CACHE}
-    fi
-fi
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/distribution/scripts/thermostat-setup-user-home	Fri May 24 16:12:14 2013 +0200
@@ -0,0 +1,126 @@
+#!/bin/bash
+#
+# Copyright 2012, 2013 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.
+#
+#####################################################################
+#
+# Some necessary variables.
+if [ x"${THERMOSTAT_INSTALL_DIR}" = "x" ]; then
+    echo "THERMOSTAT_INSTALL_DIR not set!" 1>&2
+    exit 1
+fi
+
+# If run as unprivilged user, copy/symlink files from system install
+if [ x"${THERMOSTAT_HOME}" = "x" ]; then
+    # Thermostat run as regular user (no systemd)
+    THERMOSTAT_HOME="${HOME}/.thermostat"
+
+    # Set up structure for users
+    THERMOSTAT_STORAGE="${THERMOSTAT_HOME}/storage/db"
+    THERMOSTAT_LOG="${THERMOSTAT_HOME}/storage/logs"
+    THERMOSTAT_PID="${THERMOSTAT_HOME}/storage/run"
+    THERMOSTAT_BIN="${THERMOSTAT_HOME}/bin"
+    THERMOSTAT_AGENT_LOG="${THERMOSTAT_HOME}/agent/logs"
+    THERMOSTAT_AGENT_RUN="${THERMOSTAT_HOME}/agent/run"
+    THERMOSTAT_CLIENT="${THERMOSTAT_HOME}/client"
+    THERMOSTAT_LIBS="${THERMOSTAT_HOME}/libs"
+    THERMOSTAT_PLUGINS="${THERMOSTAT_HOME}/plugins"
+    THERMOSTAT_ETC="${THERMOSTAT_HOME}/etc"
+    THERMOSTAT_OSGI_CACHE="${THERMOSTAT_HOME}/osgi-cache"
+
+    if [ ! -d "${THERMOSTAT_STORAGE}" ] ; then
+        echo "creating ${THERMOSTAT_STORAGE}"
+        mkdir -p ${THERMOSTAT_STORAGE}
+    fi
+
+    if [ ! -e  "${THERMOSTAT_HOME}/storage/db.properties" ] ; then
+        echo "copying over ${THERMOSTAT_HOME}/storage/db.properties"
+        cp "${THERMOSTAT_INSTALL_DIR}/storage/db.properties" "${THERMOSTAT_HOME}/storage"
+    fi
+
+    if [ ! -d "${THERMOSTAT_LOG}" ] ; then
+        echo "creating ${THERMOSTAT_LOG}"
+        mkdir -p ${THERMOSTAT_LOG}
+    fi
+    
+    if [ ! -d "${THERMOSTAT_PID}" ] ; then
+        echo "creating ${THERMOSTAT_PID}"
+        mkdir -p ${THERMOSTAT_PID}
+    fi
+    
+    if [ ! -e "${THERMOSTAT_BIN}" ] ; then
+        echo "creating ${THERMOSTAT_BIN}"
+        mkdir -p ${THERMOSTAT_BIN}
+    fi
+    
+    if [ ! -d "${THERMOSTAT_AGENT_LOG}" ] ; then
+        echo "creating ${THERMOSTAT_AGENT_LOG}"
+        mkdir -p ${THERMOSTAT_AGENT_LOG}
+    fi
+    
+    if [ ! -d "${THERMOSTAT_AGENT_RUN}" ] ; then
+        echo "creating ${THERMOSTAT_AGENT_RUN}"
+        mkdir -p ${THERMOSTAT_AGENT_RUN}
+    fi
+
+    if [ ! -e "${THERMOSTAT_HOME}/agent/agent.properties" ] ; then
+        cp "${THERMOSTAT_INSTALL_DIR}"/agent/agent.properties "${THERMOSTAT_HOME}"/agent/agent.properties
+    fi
+
+    if [ ! -d "${THERMOSTAT_CLIENT}" ] ; then
+        echo "creating ${THERMOSTAT_CLIENT}"
+        mkdir -p "${THERMOSTAT_CLIENT}"
+    fi
+
+    if [ ! -d "${THERMOSTAT_LIBS}" ] ; then
+        echo "creating ${THERMOSTAT_LIBS}"
+        ln -s "${THERMOSTAT_INSTALL_DIR}"/libs "${THERMOSTAT_LIBS}"
+    fi
+
+    if [ ! -d "${THERMOSTAT_PLUGINS}" ] ; then
+        echo "creating ${THERMOSTAT_PLUGINS}"
+        ln -s "${THERMOSTAT_INSTALL_DIR}"/plugins "${THERMOSTAT_PLUGINS}"
+    fi
+
+    if [ ! -d "${THERMOSTAT_ETC}" ] ; then
+        echo "creating ${THERMOSTAT_ETC}"
+        cp -r "${THERMOSTAT_INSTALL_DIR}"/etc "${THERMOSTAT_ETC}"
+    fi
+
+    if [ ! -d "${THERMOSTAT_OSGI_CACHE}" ] ; then
+        echo "creating ${THERMOSTAT_OSGI_CACHE}"
+        mkdir -p ${THERMOSTAT_OSGI_CACHE}
+    fi
+fi