From 43ba6d721185f9a810761720fcb05103b31d17b7 Mon Sep 17 00:00:00 2001
From: chebrard <chebrard@localhost>
Date: Wed, 29 Oct 2008 10:39:44 +0000
Subject: [PATCH] Fix 3534: Provide native Solaris packages (fix also 3533: upgrade fails starting server adding entry ds-cfg-key-id)

---
 opends/resource/bin/_script-util.sh |  105 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 97 insertions(+), 8 deletions(-)

diff --git a/opends/resource/bin/_script-util.sh b/opends/resource/bin/_script-util.sh
index 9830484..c77e45c 100644
--- a/opends/resource/bin/_script-util.sh
+++ b/opends/resource/bin/_script-util.sh
@@ -170,17 +170,61 @@
   cd "`dirname "${0}"`"
   cd ..
   INSTALL_ROOT=`pwd`
-  if cat ${INSTALL_ROOT}/instance.loc | grep '^/' > /dev/null
-  then
-    INSTANCE_ROOT=`cat ${INSTALL_ROOT}/instance.loc`
-    export INSTANCE_ROOT
-  else
-    INSTANCE_ROOT=${INSTALL_ROOT}/`cat ${INSTALL_ROOT}/instance.loc`
-    export INSTANCE_ROOT
-  fi
   cd "${WORKING_DIR}"
 fi
 
+if test "${INSTANCE_ROOT}" = ""
+then
+  for opt in `echo $*`
+  do
+	if [ $opt = "-V" ] || [ $opt = "--version" ] || 
+		[ $opt = "-H" ] || [ $opt = "--help" ] 
+	then
+		INSTANCE_ROOT="not_needed"
+	fi
+  done
+fi
+
+if test "${INSTANCE_ROOT}" = ""
+then
+  if [ -f ${INSTALL_ROOT}/configure ]
+  then
+    if [ -f /etc/opt/opends/instance.loc ]
+    then 
+      if [ "${SCRIPT_NAME}" = "configure" ]
+      then
+        echo "${INSTALL_ROOT}/configure has already be run. Exiting."
+        exit 0
+      fi	
+      INSTANCE_ROOT=`cat /etc/opt/opends/instance.loc`
+    else
+      if [ "${SCRIPT_NAME}" != "configure" ]
+      then
+        echo "No instance found. Run ${INSTALL_ROOT}/configure to create it."
+        exit 1
+      fi
+    fi
+  else
+    if [ -f ${INSTALL_ROOT}/instance.loc ]
+    then
+      if cat ${INSTALL_ROOT}/instance.loc | grep '^/' > /dev/null
+      then
+         INSTANCE_ROOT=`cat ${INSTALL_ROOT}/instance.loc`
+      else
+         INSTANCE_ROOT=${INSTALL_ROOT}/`cat ${INSTALL_ROOT}/instance.loc`
+      fi
+    else
+         INSTANCE_ROOT=${INSTALL_ROOT}
+    fi
+  fi
+  if [ -d "${INSTANCE_ROOT}" ]
+  then
+      cd ${INSTANCE_ROOT}
+      INSTANCE_ROOT=`pwd`
+      export INSTANCE_ROOT
+  fi
+fi
+
 if test "${SCRIPT_UTIL_CMD}" = "set-full-environment-and-test-java"
 then
   set_java_home_and_args
@@ -205,3 +249,48 @@
 then
   test_java
 fi
+
+current_user()
+{
+USER=`id`
+CURRENT_IFS=${IFS}
+IFS="()"
+set -- ${USER}
+echo $2
+IFS=${CURRENT_IFS}
+}
+
+if [ "${SCRIPT_NAME}" != "configure" ]
+then 
+  NO_CHECK=0
+  for opt in `echo $*`
+  do
+    # No check for --version or --help option
+	if [ $opt = "-V" ] || [ $opt = "--version" ] || 
+		[ $opt = "-H" ] || [ $opt = "--help" ]  ||
+		[ $opt = "-F" ] || [ $opt = "--fullversion" ] 
+	then
+		NO_CHECK=1
+	fi
+  done
+  if [ ${NO_CHECK} -eq 0 ]
+  then
+    set_classpath
+  # Check instance
+      CURRENT_USER="`current_user`"
+      if [ "${CHECK_VERSION}" = "yes" ]
+      then
+	  OPT_CHECK_VERSION="--checkVersion"
+      else
+	  OPT_CHECK_VERSION=""
+      fi
+  # Launch the CheckInstance process.
+      "${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} ${SCRIPT_NAME_ARG} -DINSTALL_ROOT=${INSTALL_ROOT} -DINSTANCE_ROOT=${INSTANCE_ROOT} org.opends.quicksetup.configurator.CheckInstance --currentUser ${CURRENT_USER} ${OPT_CHECK_VERSION}
+  # return part
+      RETURN_CODE=$?
+      if [ ${RETURN_CODE} -ne 0 ]
+      then
+	  exit ${RETURN_CODE}
+      fi
+  fi
+fi

--
Gitblit v1.10.0