# check for root
user=`/bin/id | /usr/bin/grep root | /usr/bin/wc -l`
if [ $user -eq 0 ]; then
        echo "You must be root to execute this script."
        exit 1
fi

ESM_BASE=`/usr/bin/pkgparam SUNWstm ESM_BASE`
if [ $? -ne 0 ]; then
    echo "Could not determine ESM location!"
    exit 1
fi

SM_BASE=/usr/share/webconsole
US_BASE=/usr/sbin
SM_ETC=/etc/opt/webconsole



# helper function to restart database (for making db changes)
start_db () {
    /usr/bin/su - $SSTR_DBOWNER -c ". $SSTR_DBBIN/postgres.env; $SSTR_DBSTART"
    this_try=1
    until /usr/bin/su $SSTR_DBOWNER  -c ". $SSTR_DBBIN/postgres.env; $SSTR_PSQL -l" > /dev/null 2>&1
    do
        if [ $this_try -ge 12 ]; then
            echo "Database still not up - giving up"
            exit 1
        fi
        echo "Wait and try connecting to database again..."
        this_try=`/usr/bin/expr $this_try + 1`
        sleep 10
    done
}


# UI changes
# Copy the old esm.war file back to lockhart webconsole directory
/bin/cp $ESM_BASE/sssm/lib/esm.war $SM_BASE/esm

# there ought to be a java install (lockhart needs it), so use that
# (something very wrong if not there)
JAVA_HOME=`/usr/bin/grep java.home $SM_ETC/webconsole | /bin/sed -e 's/java.home=//'`
JAR=$JAVA_HOME/bin/jar
if [ ! -x $JAR ] ; then
    if [ ! -x $JAR ] ; then
        echo "Could not find jar tool!"
	exit 1
    fi
fi

# Expand the esm.war file in $SM_BASE/esm
cd $SM_BASE/esm
$JAR -xf esm.war > /dev/null

# copy old component files over there too (see tr_mgmt/bin/postinstall)
/bin/cp $ESM_BASE/sssm/util/cre/components/esm-jade.car $SM_BASE/esm/WEB-INF/lib/esm-jade.jar
/bin/cp $ESM_BASE/sssm/util/cre/components/idresolver.car $SM_BASE/esm/WEB-INF/lib/idresolver.jar
/bin/cp $ESM_BASE/sssm/util/cre/components/services-api.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/serack.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/t3.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/lib/esm-topology.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/switch.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/hds.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/oob_util.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/esm-common.jar $SM_BASE/esm/WEB-INF/lib
/bin/cp $ESM_BASE/sssm/util/cre/components/asset.jar $SM_BASE/esm/WEB-INF/lib

# Change file permissions
cd $SM_BASE/esm
/bin/chmod -R 755 .

# restore old server.xml file
if [ -f $SM_ETC/.server.xml.bak ]; then
    /usr/bin/mv -f $SM_ETC/.server.xml.bak $SM_ETC/server.xml
fi


# restore old table content
SSTR_HOME=$ESM_BASE/sssm
SSTR_DBHOME=$SSTR_HOME/util/pgsql
SSTR_DBBIN=$SSTR_DBHOME/nsm1/bin
SSTR_DBSTART=$SSTR_DBBIN/dbstart.sh
SSTR_DBOWNER=sstr001
SSTR_PSQL=$SSTR_DBHOME/bin/psql
start_db

/usr/bin/su - $SSTR_DBOWNER -c ". $SSTR_DBBIN/postgres.env; $SSTR_PSQL -f $SSTR_DBHOME/nsm1/ddl/LocalizePropsPopulate.ddl" > /dev/null


# re-register esm app 
SMREG=$US_BASE/smreg
if [ -f "$SMREG" ]; then
    $SMREG add -a /usr/share/webconsole/esm
else
    echo "Unable to register ESM with console"
    exit 1
fi

# restart smicc and ESM if not adding patches with esmpatch
if [ "$ESM_CONTEXT" != "patch" ]; then
    SMSERVER=$US_BASE/smcwebserver
    if [ -f "$SMSERVER" ]; then
        $SMSERVER start 
    else
        echo "Unable to start $SMSERVER"
        exit 1
    fi

    $ESM_BASE/bin/esmcontrol -m start 
fi
