#! /usr/bin/sh
#
# ident	"@(#)mofreg.sh	1.12	06/05/03 SMI"
#
# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

# We dont want to exit while doing something.
trap 'echo QUIT to exit' 1 2 15

ECHO=/bin/echo
GREP=/usr/bin/grep
CP=/usr/bin/cp

PKG=SUNWwbcor
BASEDIR=`/bin/pkgparam $PKG BASEDIR 2>/dev/null`
if [ -z "$BASEDIR" ]    # pkg not installed or installed several times
then
        BASEDIR=/    # set default. Maybe the dir is nfs mounted
fi

# Get the path to sadm directory
SADMDIR=${BASEDIR}usr/sadm
getsadmdir () {
# Wbem could be installed on a user selected directory - when using Wbem installer -
# in that case wbemInstallDir.properties file will contain the installed directory path.
# Wbem installer uses java "user.home" system property to create this file.
if [ -f /wbemInstallDir.properties ]  # "user.home" = "/" on Solaris
then
    SADMDIR=`grep WBEMINSTALLDIRECTORY /wbemInstallDir.properties|cut -d"=" -f2`"/sadm"
elif [ -f /root/wbemInstallDir.properties ] # "user.home" = "/root" on Linux
then
    SADMDIR=`grep WBEMINSTALLDIRECTORY /root/wbemInstallDir.properties|cut -d"=" -f2`"/sadm"
else
    SADMDIR=..   # properties file not found, use relative path
fi
}
# --------- end getsadmdir
if [ ! -f $SADMDIR/lib/wbem.jar ]   # If wbem.jar does not exists
then
    getsadmdir
fi

USRLIB=${SADMDIR}/lib
WBSERLIB=${SADMDIR}/lib/wbem
WBSERBIN=${SADMDIR}/bin

JAVACMD="java"
#
setJavaPath() {
  if [ -z "$JAVA_HOME" ]
  then 
    if [ -d /usr/java ]
    then
      JAVA_HOME=/usr/java
      JAVAPATH=${JVBASEDIR}/usr/java/bin
      JAVALIBS=${JVBASEDIR}/usr/java/lib
    fi
  else 
    JAVAPATH=${JAVA_HOME}/bin
    JAVALIBS=${JAVA_HOME}/lib
  fi
  PATH=${JAVAPATH}:${PATH}:$OLDPATH
  LD_LIBRARY_PATH=${JAVALIBS}:${LD_LIBRARY_PATH}
  export PATH
  export LD_LIBRARY_PATH
# jre doesn't update CLASSPATH if a CLASSPATH is set !
  if [ "${JAVACMD}" = "jre" ]
  then
    CLASSPATH=${JAVA_HOME}/lib/rt.jar:${JAVA_HOME}/lib/i18n.jar:${CLASSPATH}
    CLASSPATH=${JAVA_HOME}/classes:${JAVA_HOME}/lib/classes.zip:${CLASSPATH}
    export CLASSPATH
  fi
}
# --------- end setJavaPath


OLDPATH=$PATH
PATH=/usr/sbin:/sbin:/usr/bin:${WBSERLIB}:${WBSERBIN}

LD_LIBRARY_PATH=${WBSERLIB}:${LD_LIBRARY_PATH}
CLASSPATH=${WBSERLIB}:${USRLIB}/wbem.jar:${WBSERLIB}/cimom.jar:${USRLIB}/xml.jar:${WBSERLIB}/extension:${WBSERLIB}/sunwbem.jar

export PATH
export LD_LIBRARY_PATH
export CLASSPATH

WBEMLOGROOT=${BASEDIR}/var/sadm/wbem/logr
REGDIRROOT=${WBEMLOGROOT}/preReg
UNREGDIRROOT=${WBEMLOGROOT}/preUnreg

USERID=`/usr/bin/id | $GREP '^uid=0(root)'`
if [ -z "$USERID" ]; then
	if [ "$1" != "-s" ]
	then
	    $ECHO "You must be root to run this command"
	    exit 1
	fi
fi

usage() {
	$ECHO "Usage: $0 { -r tag file | -u tag [file] | -s }"
	exit 1
}

checkTag() {
	if [ -z "$TAG" ]
	then
	    usage
	fi
	CHECKUNREG=`echo $TAG | $GREP '.*\.unreg$'` 
	if [ -n "$CHECKUNREG" ]
	then
		$ECHO Tag cannot end with unreg
		exit 1
	fi
}

case "$1" in
'-r')
	TAG="$2"
	checkTag
	FILE="$3"
	if [ -z "$FILE" ]
	then
	    usage
	fi
	if [ ! -f "$FILE" ]
	then
	    $ECHO $FILE does not exist
	    exit 1
	fi
	mkdir -p ${REGDIRROOT}/${TAG}
	cp $FILE ${REGDIRROOT}/${TAG}
	;;

'-u')
	TAG="$2"
	checkTag
	FILE="$3"
	if [ ! -z "$FILE" ] && [ ! -f "$FILE" ]
	then
	    $ECHO $FILE does not exist
	    exit 1
	fi
	mkdir -p ${UNREGDIRROOT}/${TAG}
	if [ ! -z "$FILE" ]
	then
	    cp $FILE ${UNREGDIRROOT}/${TAG}
	fi
	;;

-s)
	setJavaPath
	$JAVACMD CIMOMMofReg localhost root
	EXITVAL=$?
	$ECHO
	if [ $EXITVAL -ne 0 ]; then
	    $ECHO Mofreg failure
	else
	    $ECHO Mofreg success
	fi
	exit $EXITVAL
	;;

*)
	usage
	;;
esac
exit 0
